2017-06-11 8 views
3

私はダメージや範囲などのいくつかの基本的な統計情報の公開変数を持つタワーのプレハブを持っています。これらの統計値は、値が0であってもインスペクタの内容によって上書きされますが、コードに定義されている数値が表示されます。変数を他のスクリプトにアクセスできるようにするが、インスペクタで上書きされないようにするには?

たとえば、プレハブで0に、コードで開始関数で5に設定した場合、インスタンス化されたときに5と表示されますが、損傷は0になります。これをコードで上書きしようとしているにもかかわらず、プレハブに定義されている損傷の量だけを行います。

私はプライベート変数を作ってみましたが、その後、私はおそらくそう

Tower_1 t1Dmg = t1Ref.GetComponent<Tower_1>(); 
Tower_2 t2Dmg = t2Ref.GetComponent<Tower_2>(); 
Tower_3 t3Dmg = t3Ref.GetComponent<Tower_3>(); 


if(other.transform.tag == "Bullet") 
{ 
    Debug.Log("tower1Hitme"); 
    health -= t1Dmg.t1Damage; // Minus tower 1's current damage from our health per collision with "Bullet" 
} 

if (other.transform.tag == "Rocket") 
{ 
    health -= t2Dmg.rocketDamage; // Minus tower 2's current damage from our health per collision with "Rocket" 
} 

if (other.transform.tag == "Rocket") 
{ 
    health -= t2Dmg.miniRocketDamage; // Minus tower 1's current damage from our health per collision with "MiniRocket" 
} 

その私が欠けているが、私は持っているように見えることはできません非常に基本的な何かのようにやっている敵の値を参照するカント値はコードに設定されている値に対応します。

答えて

3

あなたはHideInInspectorする必要があります。

使用例:私は見

using UnityEngine; 
using System.Collections; 

public class ExampleClass : MonoBehaviour { 
    [HideInInspector] 
    public int p = 5; 
} 
+0

を、私はそのはそれを上書きカントインスペクタの中に隠されている場合、私は認識している必要がありますね。私はこれを他の変数にも使用しています。 – OmBiEaTeR

関連する問題