2015-10-16 79 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