我试图在Unity中制作一个游戏,我被困在了一个部分,我试图将一个平台从A点移动到B点。
我得到的错误是:
空引用异常:对象引用未设置为对象MovingPlatform.Update()的示例(位于Assets/Scripts/MovingPlatform.cs:30)
源代码为:
public class MovingPlatform : MonoBehaviour
{
[SerializeField]
private Transform pointA, pointB;
private float speed = 1.0f;
private Transform target;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (transform.position == pointA.position)
{
target = pointB;
}
else if (transform.position == pointB.position)
{
target = pointA;
}
transform.position = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
}
}
我该怎么办?
因为站台根本就没动。
1条答案
按热度按时间j9per5c41#
这个错误告诉你哪里出了问题。在你的脚本的第30行你有一个引用,它是
null
(因此是NullReferenceException
),你试图用它做一些事情(例如访问属性)。我猜它是target.position
当你的
if
-语句不触发时,你应该在Start()
中添加target = pointB;
来正确地初始化target
(我假设你想开始移动到pointB
)。