我有一个塔的预制件,它有一些基本属性的公共变量,如损坏和范围。即使值为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"
}
它可能是一些非常基本的东西,但是我似乎无法将这些值与代码中设置的值相对应。
答案 0 :(得分:3)
您需要HideInInspector:
使用示例:
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
[HideInInspector]
public int p = 5;
}