You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity 2D移动脚本报CS1061错误:Rigidbody2D无Velocity定义如何解决

Unity CS1061报错排查解决方案

报错原因

你遇到的CS1061是C#语法层面的报错,核心原因是C#语言严格区分大小写,Unity官方提供的Rigidbody2D类的速度属性名为小写v开头的velocity,你代码中写的大写V开头的Velocity不是Rigidbody2D的官方API,所以编译器找不到对应定义。

另外你代码中存在一个隐藏问题:Unity生命周期的帧更新方法是大写U开头的Update(),你写的小写update()不会被Unity引擎自动调用,后续会出现按键后角色无法移动的问题。

具体修改点

  • 将代码中两处rb.Velocity替换为rb.velocity
  • 将private void update()修改为private void Update()

修改后的完整代码

using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour{
    public float movementSpeed;
    public Rigidbody2D rb;
    
    float mx;
    private void Update() {
        mx = Input.GetAxisRaw("Horizontal");
    }
    
    private void FixedUpdate() {
        Vector2 movement = new Vector2(mx * movementSpeed, rb.velocity.y);
        
        rb.velocity = movement;
    }
}

额外注意事项

  • 代码修改完成后,需要在Inspector面板给rb字段赋值,将挂载了Rigidbody2D组件的玩家对象拖入对应字段,否则运行时会触发空引用报错
  • 可以根据操作手感调整movementSpeed的数值,避免移动速度过快/过慢

内容的提问来源于stack exchange,提问作者lolstamp_DEV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:45:01