2017-01-10 4 views
0

へのアクセス私は2つのスクリプト 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スクリプト

ここの曇りarget.csスクリプト

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

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

} 

しかし、私は

gameObject.GetComponent<simplecloudhander>().mTargetMetadata 

、あなたのスクリプトが同じオブジェクトに接続されている場合、あなたはこのようなGetComponentを使用することができ、別のスクリプトで

答えて

0

をmTargetMetadata値を取得することはできませんそれらが同じに接続されていない場合gameObjectGameObject.Findを最初に使用してgameObjectスクリプトをアタッチする場合は、gameObjectの名前を使用して見つけてください鶏は、あなたがそれへの参照を追加する必要があり、あなたはそれにアクセスする場合も、新しいキーワードの必要がない

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 SIRを提供するドキュメントに目を向けることをお勧めしますが、そのそれを –

+0

thanxx SIRをretriveしていない私はそれが、そのドンを試してみてくださいそれを取得しないでください void OnGUI() { \t SimpleCloudHandler sc = new SimpleCloudHandler(); \t a = GameObject.Find( "mTargetMetadata")。GetComponents ()。ToString(); GUI。ラベル(新しいRect(100,300,300,50)、 "Metadata:" + a); } –

+0

あなたは 'OnGUI'でそれを呼び出すべきではありません。どこで呼び出されるべきかを示すために編集しました。また' mTargetMetadata'もあなたのgameobjectの名前ですか? –

2

componentを取得するためにGetComponentを使用しますスクリプトはクラウドターゲットスクリプトです。だけではないOnGUI方法、後でドラッグに、クラスcloudtargetにタイプSimpleCloudHandlerのパブリック変数を追加し、インスペクタでスクリプトcloudtargetにatached SimpleCloudHandlerでゲームオブジェクトをドロップします。

例:

enter image description hereenter image description here

ドラッグアンド=>インスペクタを介しcloudtargetスクリプトの公開SimpleCloudHandler変数に取り付けSimpleCloudHandlerスクリプトでMainCameraドロップ。

ユニティでの参照を作成する複数の方法がありますが、私はUnityは、私はそれを試して

+0

thanxさんですが、問題はありません。 –

関連する問題