我正在学习如何使用Unity并遵循在线教程,但我目前遇到了一个问题,我不知道如何解决。
我有一个雪碧在我的场景,我已经附加了一个脚本,但在检查器中,它显示脚本在那里,但我不能看到里面的变量?我以前遇到过这个问题,它自己解决了。
此问题的原因是什么/如何修复?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SpaceShip : MonoBehaviour {
public float speed = 30;
public GameObject theBullet;
private void FixedUpdate()
{
float horzMove = Input.GetAxisRaw("Horizontal");
GetComponent<Rigidbody2D>().velocity = new Vector2(horzMove, 0) *
speed;
}
// Update is called once per frame
void Update () {
if (Input.GetButtonDown("Jump"))
{
Instantiate(theBullet, transform.position, Quaternion.identity);
}
}
}
字符串
3条答案
按热度按时间yyyllmsg1#
编辑:通过重新导入解决了问题。
您需要将变量声明为
Public
或[SerializeField]
,以使成员变量显示在检查器中。请注意,通过将某个变量声明为public,可以从类外部访问该变量(例如,从其他脚本/类)。默认情况下,private
被分配给成员变量。范例:
字符串
yxyvkwin2#
不是问题,你肯定忘了做什么。
这在Unity中是常见的。
重新开始
在场景中创建一个新的游戏对象并添加脚本。
如果检查器显示无变量:
1.变量do不是public(false,如果在脚本中是public)
1.脚本中有一些语法错误!
或者是
1.您没有向游戏对象添加正确的脚本。
没有太多的秘密,如果一切都足够好,变量是公共的,这在脚本的方法之外,以便在检查器中看到它。
一个提示,不要在FixedUpdate或Update中使用GetComponent或Instantiate,因为它们很昂贵,将Rigidbody 2D保存在Start中的变量中,然后使用它。
对不起,我的英语,祝你好运。
weylhg0b3#
有时,当您的代码中有一些错误时,它会发生,并且不会显示在控制台中。要修复它,请关闭并再次打开Unity编辑器,它会询问我们是否要进入安全模式来修复这些错误。在安全模式下修复后,它会自动关闭并进入正常模式,并在检查器中显示变量。