我已经查看并查找并寻找答案,但无论我尝试什么,我都无法将此布尔变量显示在检查器中。我试图将变量公开,以便我可以诊断我的游戏中的错误。如果我在另一个脚本中显示完全相同的变量,它会显示,但由于某种原因,这个不会。
这是我的代码:
public class LB : MonoBehaviour {
public static bool canStep;
void Start (){
canStep = true;
}
void OnTriggerExit (Collider tf){
if (tf.gameObject.name == "Player") {
canStep = false;
}
}
}
答案 0 :(得分:0)
只是
public bool canStep;
这就是它的全部。 (切勿在Unity中使用“静态”。)
您的课程不得称为“LB”。它应该被称为“LongBoard”,或者不管是什么情况。
请注意。我猜你需要从另一个脚本访问“canStep”。让我们说,来自另一个名为Jumping的MonoBehaviour。就这样做
public class LB : MonoBehaviour
{
public LongBoard longBoard; // DRAG TO CONNECT in Inspector
.. and then ..
void Example()
{
if ( longBoard.canStep )
{
}
}
}
答案 1 :(得分:0)
为什么你使用静态关键字,你不需要变量是静态的,以便被其他脚本操纵,它们只需要公开。只是在检查员中分配了它,所以你已经完成所有设置,你通常不应该使用静态,除非你只指一个实例或者你知道你在做什么。
答案 2 :(得分:0)
您可以直接在检查器中显示静态变量,如Dreamora在此thread中所述:
不,只有monobehaviour实例变量才显示不是类变量 与对象上的组件完全无关 技术上
但实际上这是在检查器中观察静态var的技巧。使用另一个非静态var来简单地观察检查器中的静态var。
public static int myStaticVart;
public int myStaticVarInspector;
void Update()
{
myStaticVarInspector = myStaticVart.
}