C# 当前上下文中不存在名称“rb”?

C# 当前上下文中不存在名称“rb”?,c#,visual-studio,unity3d,C#,Visual Studio,Unity3d,我是c和unity的新手,我决定做一个测试游戏,如果你能控制玩家,问题是我不断地遇到这个错误:'名字'rb'在当前上下文中不存在'。我不知道这意味着什么,但这就是我所做的 使用系统集合; 使用System.Collections.Generic; 使用UnityEngine; 公共类运动控制器:单行为 { 公共浮子速度=1.0f; 虚空觉醒 { rb=gameObject.AddComponent作为RigidBy2D; rb.bodyType=刚体类型2D.运动学; } //在第一帧更新之前调

我是c和unity的新手,我决定做一个测试游戏,如果你能控制玩家,问题是我不断地遇到这个错误:'名字'rb'在当前上下文中不存在'。我不知道这意味着什么,但这就是我所做的

使用系统集合; 使用System.Collections.Generic; 使用UnityEngine; 公共类运动控制器:单行为 { 公共浮子速度=1.0f; 虚空觉醒 { rb=gameObject.AddComponent作为RigidBy2D; rb.bodyType=刚体类型2D.运动学; } //在第一帧更新之前调用Start 无效启动 { } //每帧调用一次更新 无效更新 { 如果输入.getKeyCode.W { rb.速度=速度,0.0f; } } }
必须将rb指定为变量

public float Speed = 1.0f;
private Rigidbody2D rb;
void Awake()
{
    rb = gameObject.AddComponent<Rigidbody2D>() as Rigidbody2D;
    rb.bodyType = RigidbodyType2D.Kinematic;
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class movement_controller : MonoBehaviour
{

    public float Speed = 1.0f;
    public RigidBody rb; //<====
    

    void Awake()
    {
        rb = gameObject.AddComponent<Rigidbody2D>() as Rigidbody2D;
        rb.bodyType = RigidbodyType2D.Kinematic;
    }

您只在awake函数中调用了rb,但没有将其指定为全局变量

public float Speed = 1.0f;
private Rigidbody2D rb;
void Awake()
{
    rb = gameObject.AddComponent<Rigidbody2D>() as Rigidbody2D;
    rb.bodyType = RigidbodyType2D.Kinematic;
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class movement_controller : MonoBehaviour
{

    public float Speed = 1.0f;
    public RigidBody rb; //<====
    

    void Awake()
    {
        rb = gameObject.AddComponent<Rigidbody2D>() as Rigidbody2D;
        rb.bodyType = RigidbodyType2D.Kinematic;
    }
增加私有刚体2d rb;低于公共浮子速度=1.0f;