2015-04-20 186 views
0

新手在這裏 - 當然。我正在使用Unity 5,並且正在尋找使用FPS相機在屏幕上顯示玩家的座標。主要原因是我正在使用攝像機路徑動畫來繞過我爲課程建造的地形場景,並且通過在FP中漫步記錄座標來思考將使我的攝像機路徑航點更容易。顯示玩家座標簡單的GUIText

我做了什麼:

-Created新的空遊戲對象 - 新增組件 - >渲染 - > GUIText - 新增組件 - >新建腳本 - > C#

現在我當然搜查四處打聽一個解決方案,並發現這個:

function OnGUI() { 
GUI.Label (Rect (10,120,500,100), "X = " + transform.position.x + " Y= " + transform.position.y + "Z= " + transform.position.z); 
} 

這是偉大的!但我不是一個強大的C#程序員,但我確實知道這需要某種類型的Player變量。所以請,任何人都可以直接指導我,或者介意發佈讓玩家座標出現在屏幕上的代碼。這並不一定非常漂亮,我只需要在FP中漫步時記下數據。 (除非你想加分和知道的一種方式登錄到座標按下按鈕.txt文件...哈哈哈謝謝你們!

Where I have script attached

回答

1

我不知道這是你想要的東西.. ..

  1. 創建新遊戲對象(GUIText),使它的父與玩家的遊戲對象,現在GUIText遊戲對象將遵循您的播放器對象自動

  2. 添加新的腳本(即PlayerPositionLogger.cs) 。到GUIText遊戲對象。

  3. 在PlayerPositionLogger.cs上的void Start()上查找播放器腳本或在編輯器上聲明public Player player;並鏈接播放器對象。

  4. 用player對象更新GUIText的內容。

gist.github.com/growingdever/39b758d5f3967c143744

+0

非常感謝您的回覆 - 我想,可悲的是,我正在尋找的是實際需要的腳本 - PlayerPositionLogger.cs,正如您所說的,不幸的是我對C#不太滿意。 – theProject

+0

@theProject試試這個https://gist.github.com/growingdever/39b758d5f3967c143744 這個腳本太簡單了,所以你不需要非常瞭解csharp就知道它。 –

+0

謝謝JuHong - 不幸的是我得到錯誤CS0246 - 無法找到命名空間'Player'的類型你是否缺少......我認爲這是因爲我沒有一個「真正的」球員?我正在使用FP控制器相機。所以,真的,我只是用箭頭鍵和鼠標看c#腳本有基本的運動技能。我應該創建一個遊戲對象並嘗試這個嗎? – theProject

0
  1. 選擇選手對象
  2. 添加組件>新建腳本
  3. 下面的代碼添加到腳本(替代啓動和更新)

    void OnGUI() { 
        GUI.Box (Rect (10,10,100,90), "Player position: X:" + transform.position.x + 
        " Y: " + transform.position.y + " Z: " + transform.position.z); 
    } 
    

當你進入playmode時,它應該做你想做的。您的主要問題是GUI佈局。

+0

謝謝你的幫助 - 我選擇了播放器對象,添加了一個新的C#腳本,粘貼了上面的代碼,替換了開始和更新,但顯然保留了正確的括號,我得到了fo減少紅色的編譯器錯誤:CS1503 - 無法將'object'表達式轉換爲UnityEngine.Rect類型CS0119 - 表達式表示一個類型,其中預期變量值或方法組... – theProject

+0

我認爲這裏的問題是我們需要將位置變量第一權利?看到我不理解C#並沒有讓這個簡單。我有基本的編程知識,只是不在這裏。我想我應該以某種方式存儲像「playerPos」這樣的變量 - 從我正在閱讀的內容中使用類似Vector3的東西,然後像在這裏一樣顯示它......我承諾,當我們得到這個直線時,我會寫一個簡單的腳本和帖子它到wiki – theProject

+0

@theProject:transform.position獲取或設置一個Vector3。如果是玩家對象,它應該是玩家作爲矢量3的位置。 –