unity3d中的对象在分配给公共变量时不返回位置

时间:2015-10-16 08:35:48

标签: variables unity3d runtime-error variable-assignment

我正在尝试使用transform.position找到两个对象之间的距离。

以下是我的脚本代码:

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)游戏对象的检查员已将脚本分配给:

enter image description here

然而问题是,当我想找到该对象的位置但是它只返回初始位置 - 即它不更新gameObject播放器的位置 - 我如何更新gameObject变量?

1 个答案:

答案 0 :(得分:0)

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

  • 如果您无意中将脚本附加到多个游戏对象并且只在一个位置初始化它,就会发生这种情况。

我检查了你的错误图片,你申请了Door对象。把脚本放到WALLS或PLAYER上。将解决问题