【问题标题】:I'm new to Unity3D , Getting compiler errors我是 Unity3D 新手,遇到编译器错误
【发布时间】:2021-05-09 19:13:18
【问题描述】:

我是 Unity 新手,我正在制作火柴人游戏,我添加了一个平衡脚本。

但它显示编译器错误“未分配rb的变量”。

你能告诉我如何分配变量吗?

这是代码-

// Update is called once per frame
void Update()
{
    rb.MoveRotation(Mathf.LerpAngle(rb.rotation, targetRotation, force * Time.fixedDeltaTime));
}

【问题讨论】:

  • 假设 rb 是一个Rigidbody 组件,您需要在代码或检查器中分配它。如果该字段是私有的且未序列化,则需要使用GetComponent 分配它。如果是序列化的或者公开的,可以在inspector中拖动引用。对于您的用例,您最有可能将其设置为AwakeStart,并将其设置为rb = GetComponent<Rigidbody>()。如果脚本与组件不在同一个对象上,则此行将更改。如果刚体是二维的,则相同。
  • 这不是您的实际代码,也不是实际错误。rb 不能是您提供的代码中的“变量”。在同一个方法中声明了一个变量。对于字段,不会出现编译时错误“未分配 rb 的变量”,而是运行时 NullReferenceException .. 所以请分享您的实际代码!

标签: unity3d


【解决方案1】:

因为您没有使用刚体,所以您需要从游戏对象中获取组件,并在您的情况下制作您想要使用的实际刚体变量。

您的代码应如下所示:

using UnityEngine;

public class Example : MonoBehaviour
{
    Rigidbody rb;
    void Start()
    {
        //Fetch the Rigidbody from the GameObject with this script attached
        rb= GetComponent<Rigidbody>();
    }

    void Update()
    {
        rb.MoveRotation(.....);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    相关资源
    最近更新 更多