如何使变量可以访问其他脚本但不在检查器中覆盖?

时间:2017-06-11 05:39:24

标签: c# unity3d reference

我有一个塔的预制件,它有一些基本属性的公共变量,如损坏和范围。即使值为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"
}

它可能是一些非常基本的东西,但是我似乎无法将这些值与代码中设置的值相对应。

1 个答案:

答案 0 :(得分:3)

您需要HideInInspector

使用示例:

using UnityEngine;
using System.Collections;

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