You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Unity中出现CS1003编译错误,请求排查鼠标视角控制代码问题

解决Unity鼠标视角控制脚本的CS1003编译错误

你的脚本里有两个明确的语法问题触发了CS1003错误,我来逐个说明并修正:

  • 类型名大小写错误public transform playerBody; 里的transform必须写成大写的Transform。在C#和Unity的规则里,所有组件类的名称都是大写开头(比如RigidbodyCollider),小写的transform是MonoBehaviour自带的属性,用来获取当前物体的Transform组件,不能用来声明公共变量的类型。

  • 字符串参数缺少引号Input.GetAxis(Mouse X)Input.GetAxis(Mouse Y) 中的Mouse XMouse Y是字符串参数,必须用双引号包裹,也就是"Mouse X""Mouse Y"。没有引号的话编译器会把它们当成未定义的变量,直接抛出语法错误。

下面是修正后的完整代码:

using UnityEngine;
public class MouseCam : MonoBehaviour {
    public float mouseSensitivity = 100f;
    public Transform playerBody; // 修正为大写Transform
    // Start方法在第一帧更新前调用
    void Start() { }
    // Update方法每帧调用一次
    void Update() {
        // 给Mouse X和Mouse Y加上双引号
        float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime;
        float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime;
        playerBody.Rotate(Vector3.up * mouseX);
    }
}

额外提一句:如果你的视角控制需要支持垂直方向(抬头低头)的旋转,建议单独维护一个垂直角度变量,避免旋转超过90度导致视角翻转,不过这属于功能优化范畴,当前的编译错误已经通过上面的修改解决了。

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

火山引擎 最新活动