2017-06-10 6 views
0

私は多くの変数を持つ文字クラスを作成しました。私は以前にRPGを作っていましたが、ギアを装備して解き放つメソッドを用意していました。 :ユニティクラスのコンポーネントへのアクセス方法

public void equip(Gear g){ 
    increaseValues(g.getValue()); 
    //increaseValues.. 
} 

public void unequip(Gear g){ 
    increaseValues(-g.getValue()); 
    //increaseValues.. 
} 

かなり基本的な、私はユニティで同じことを行うが、ここでの問題は出番、OOPに私は価値観やメソッドを持つクラスを作成しているが、団結の傾向は、スクリプトを作成して、それらを追加することである可能性がありコンポーネントを別のクラスに変換する必要があります。したがって、オブジェクト埋め込みコンポーネントの情報にアクセスする方法がわかりません。パラメータに何を渡しますか? GameObjectを試しましたが、アクセスしようとしている値やメソッドがそのようなオブジェクト内に存在しないことがわかります。

+1

それはあなたが基本的なユニティのチュートリアルを参照する必要のように聞こえる - スクリプトが実際にそれ – UnholySheep

+0

にコンポーネントとして添付されている、 'GameObject'が主なエンティティであり、だけではなく、基本的なもの、私は全体のドキュメントを通過することができ編集のおかげで、ここでは決して物事を尋ねることはありません。 –

+0

ここのポスターは男女だけではないことに注意してください。私たちの女性ヘルパーの中には、「紳士」の聴衆を参照するたびに排除されているとの意見がありました。したがって、この種のアドレス、または実際にはジェンダー言語を使用しないようにしてください。ありがとう。 – halfer

答えて

3

他のGameObjectのスクリプトにはGameObject.GetComponent(Type type)メソッドでアクセスできます。

public GameObject myGameObject; //Attach gameobject in Unity Editor 
private MyClass myGameObjectClass; 

void Start() { 
    myGameObjectClass = myGameObject.GetComponent<MyClass>(); 
    //or you could use this 
    //myGameObjectClass = myGameObject.GetComponent(typeof(MyClass)) as MyClass; 
    myGameObjectClass.MyProperty = 2; 
    myGameObjectClass.MyMethod(); 
} 
+1

gameobjectに必要な型のコンポーネントがない場合は 'null'を返すので、常にGetComponentの戻り値をチェックする必要があります – UnholySheep

関連する問題