2014-06-21 112 views
-4

我有從另一個腳本引用功能的問題。我真的不知道該怎麼做。我尋找解決方案,但我不明白這一點。 有人可以說我做錯了什麼嗎?從另一個腳本引用功能

第一個腳本[dotykxd.cs]:

using UnityEngine; 
using System.Collections; 

public class dotykxd : MonoBehaviour { 


void Start() 
{ 




    } 
// Use this for initialization 


// Update is called once per frame 
void Update() { 

    if(Input.touches.Length <=0) 
    { 

    } 

    else{ 

     for(int i=0; i< Input.touchCount;i++) 
     { 
      if(this.guiTexture.HitTest(Input.GetTouch(i).position)) 
      {/* 
       if(Input.GetTouch(i).phase == TouchPhase.Began) 
       { 
        Camera.main.backgroundColor=Color.black; 
       }*/ 

       if(Input.GetTouch(i).phase == TouchPhase.Ended) 
       { 
        obrot obrotek= GetComponents<obrot>(); 
        obrot.obr(); 

       } 


      } 
     } 

    } 
     } 
    } 

另一個腳本[obrot.cs]

using UnityEngine; 
    using System.Collections; 

public class obrot : MonoBehaviour { 
public float speed = 5f; 


// Update is called once per frame 
void Update() { 

    obr(); 


} 

void obr() 
{ 
    transform.Translate(new Vector3(1,0,0) * speed * Time.deltaTime); 
} 
    } 

回答

0

爲了從另一個調用腳本的功能,你需要有到GameObject或參考附加到該GameObject的腳本Component

如果你有參考遊戲物體,你可以簡單地使用SendMessage這樣的:

gameObjReference.SendMessage("NameOfFunction"); 

如果你有參考腳本,你可以這樣調用該函數:

scriptReference.FunctionName(); 

然而,你的大問題將是,你如何得到這些參考。

GameObject gameObjReference = GameObject.Find("Name of GameObject in Scene"); 

也就是說,你把GameObject的名字,你在場景中稱之爲什麼。

其他方法是類似的。

ScriptName scriptReference = GameObject.Find("Name of GameObject").GetComponent<ScriptName>();