2017-01-10 123 views
0

我有兩個劇本 simplecloudhander.cs cloudtarget.cs從另一個腳本C#UNITY訪問變量

simplecloudhander.cs

public string mTargetMetadata = ""; 

public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult) 
    { 

     GameObject newImageTarget = Instantiate(ImageTargetTemplate.gameObject) as GameObject; 

     GameObject augmentation = null; 

     string model_name = targetSearchResult.MetaData; 


     if(augmentation != null) 
      augmentation.transform.parent = newImageTarget.transform; 


     ImageTargetAbstractBehaviour imageTargetBehaviour = mImageTracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget); 

     Debug.Log("Metadata value is " + model_name); 
     mTargetMetadata = model_name; 
} 

我想在另一個訪問mTargetMetadata值cloudtarget.cs腳本

here cloudt arget.cs腳本

void OnGUI() { 
     SimpleCloudHandler sc = new SimpleCloudHandler(); 

     GUI.Label (new Rect(100,300,300,50), "Metadata: " + sc.mTargetMetadata); 

} 

,但我不能在另一個腳本獲取mTargetMetadata值

回答

0

,如果你的腳本連接到同一個對象,那麼你可以使用GetComponent這樣,

gameObject.GetComponent<simplecloudhander>().mTargetMetadata 

如果它們沒有連接到相同的gameObject,則可以先使用GameObject.Find查找該腳本附加到的gameObject,則應使用gameObject的名稱找到它,t母雞使用GetComponent得到component

GameObject.Find("nameOftheGameObject").GetComponent<simplecloudhander>().mTargetMetadata 

也沒有必要進行新的關鍵詞,如果你只是想訪問它,

simplecloudhander sch; 

    void Start() 
    { 
    sch = GameObject.Find("nameOftheGameObject").GetComponent<simplecloudhander>(); 
    } 
    void OnGUI() { 
      GUI.Label (new Rect(100,300,300,50), "Metadata: " + sch .mTargetMetadata); 

    } 
+0

thanxx先生,我嘗試,但它不retrive它 –

+0

thanxx先生,我嘗試,但它的別't retrive it void OnGUI() { \t SimpleCloudHandler sc = new SimpleCloudHandler(); \t a = GameObject.Find(「mTargetMetadata」)。GetComponents ()。ToString(); GUI。標籤(新Rect(100,300,300,50),「元數據:」+ a); } –

+0

你不應該在'OnGUI'中調用它,我編輯它來告訴你它應該在哪裏調用,也是'mTargetMetadata'也是你的gameobject的名字? –

2

你必須要補充的一個參考腳本中的雲目標腳本。只是型SimpleCloudHandler的公共變量添加到類cloudtarget,而不是在OnGUI方法,稍後阻力並與SimpleCloudHandler atached在檢查腳本cloudtarget掉落遊戲對象。

實施例:

enter image description here enter image description here

拖放附着=>向公衆SimpleCloudHandlercloudtarget腳本通過檢查變量SimpleCloudHandler腳本MainCamera。

有多種方式,使在統一的參考,我建議你看看到統一提供的文檔

+0

thanx先生,但我不能問題slove rignt nw –