2016-09-16 4 views
0

私はUnity3Dでゲームを作っています。私は2種類のスクリプトを持っています。 1つはRays(それは私がクリックしているものをチェックし、そのHPを下げます)とcolorChangeというスクリプトです(これはhpに応じてクリックしたオブジェクトの色を変えます)。私はcolorChangeでhp変数を作成し、Rayのhpをチェックする必要があります。別のスクリプトで他のクラスからintsをチェックするには?

答えて

1

"colorChange"スクリプトは "Rays"スクリプトに依存しています、はい? colorChange」の「目覚め」機能で次にhttps://docs.unity3d.com/ScriptReference/RequireComponent.html

: その後、あなたはここに に記載されている[RequireComponent]タグを使用して、同じゲームオブジェクトの「レイズ」コンポーネントを期待する「colorChange」スクリプトを定義することができます"Rays"への参照を取得します。 "Rays"の "hp"変数にパブリックアクセス権がある場合は、 "colorChange"で取得した参照を "Rays"スクリプトを使って現在の値を確認することができます。スクリプト "レイズ" の

例:スクリプト "colorChange" の

using UnityEngine; 

public class Rays : MonoBehaviour { 
    private int hp = 0; 
    public int Hitpoints { 
     get { return hp; } 
    } 

    // ... other methods ... 
} 

例:

using UnityEngine; 

[RequireComponent (typeof (Rays))] 
public class colorChange : MonoBehaviour { 
    private Rays raysReference = null; 

    protected void Awake() { 
     raysReference = GetComponent<Rays>(); 
    } 

    protected int getRaysHitpoints() { 
     return raysReference.Hitpoints; 
    } 

    // ... other methods that may use getRaysHitpoints ... 
} 
+1

ワンと呼ばれるレイズ(ないレイ)と呼ばれるcolorChange 1。あなたのスクリプトRayに名前を付けないでください。すでにRayというクラスがあり、これは良い考えではありません。 – Programmer

+0

ありがとうございます。私はそれを訂正した。 – Jireugi

関連する問題