2014-01-30 36 views
-1

我有一個由數百個子模型(肌肉)組成的人體模型。統一選擇子模型

我想單擊子模型並獲取其名稱。

基本上,我知道兩種可能的解決方案。

  1. 爲每個單獨的子模型創建愚蠢的腳本OnButtonDown ..這是瘋了。
  2. 使用光線投射

我已經嘗試了第二個,我的子模型沒有工作創建腳本。

至於第一個問題,我在考慮是否有某種繼承......我可以移動一個腳本用於模型,它將應用於所有的子模型。我試圖找到辦法做到這一點,但我失敗了。

任何想法?

+0

你在你的子模型(即孩子游戲對象)有碰撞器? – JohnD

回答

1

確保所有的子對象對他們的對撞機,然後創建一個JavaScript(unityscript)資產與下面的代碼:

function Update() 
{ 
    if (Input.GetButtonDown ("Fire1")) 
    { 
     var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition); 
     var hit : RaycastHit; 
     if (Physics.Raycast(ray, hit)) 
     { 
      Debug.Log(hit.collider.gameObject.name); 
      Destroy(hit.collider.gameObject); 
     } 
    } 
} 

連接這一個對象,它是永遠活着(類似於主相機)。

+0

謝謝,但我在這裏有另一個問題。現在我選擇了遊戲對象,但即使我正在嘗試更改其材質(顏色),但它不起作用。因爲紋理一次映射到幾個子模型。 –

+0

也許最好問這個問題作爲一個單獨的問題,稍微詳細一點。 – JohnD