2015-10-16 37 views
0

我试图找到使用transform.position两个物体之间的距离不退还位置。对象在unity3d当分配给公共变量

这里是我的脚本代码:

using UnityEngine; 
using System.Collections; 

public class Trigger : MonoBehaviour { 

public GameObject Door; 
public GameObject Player; 

int count = 0; 

// Use this for initialization 
void Start() { 
    Debug.Log (Door); 
    Debug.Log (Player); 
} 

// Update is called once per frame 
void Update() { 
    Debug.Log (Door.transform.position); 
    //Debug.Log (Door); 
    //Debug.Log (Player); 
    //float distance = Vector3.Distance (Door.transform.position, Player.transform.position); 
    //Debug.Log (distance); 
} 

这里是表示1)现场和等级2)检查员游戏对象IVE分配脚本的图像:

http://i.stack.imgur.com/4jAqS.png

但是现在的问题是,当我想找到那个对象的位置。然而它只返回初始位置 - 即它没有更新游戏对象玩家的位置 - 我怎么可以更新游戏对象变量?

+0

你看到触发的start()方法的任何错误? – Skyblade

+0

您的GameObject门未分配给任何对象实例。 start()方法不会触发一个错误,因为它只会打印出空或东西,但你尝试使用门作为一个实例,并访问变换,上面的错误被抛出。 – gin

+0

我以为我已将游戏对象门指派给场景(门)中的游戏对象 - 以及gameObject播放器 – Nightshade

回答

0
  • 当我有同样的错误,原因是我不小心将脚本拖到场景视图中的一个错误的对象。

  • 这可能是因为你无意中附上你的脚本到一个以上的游戏对象,只有它在一个地方进行初始化。

我检查了你的错误图像,你申请了门对象的权利。把脚本放在WALLS或PLAYER中。将解决问题

+0

谢谢解决了这个问题 - 但是现在的问题是当我想要找到那个对象的位置它只返回初始位置 - 即它不更新gameObject播放器的位置 - 你知道我该如何解决这个问题吗? – Nightshade

+0

没关系我固定它(事实证明,球员实际上并没有动它是移动的子对象单元) – Nightshade