unity3d Unity脚本未在编辑器中“接受”

lsmd5eda  于 2023-01-09  发布在  其他
关注(0)|答案(1)|浏览(188)

我正在学习Unity,通过滚动球教程,我已经到了视频8,在那里我添加了一行"公共浮动速度= 0; "这揭示了我已经怀疑的事情,即在某种程度上我的脚本在Unity编辑器中没有"接受"。
我使用Visual Studio代码作为我的常规编辑器。我告诉Unity它将是我的脚本编辑器。在本教程中,我按照教程的建议按下"新建脚本"按钮,并在编辑器中创建文件PlayerControl.cs。然而,如屏幕截图所示,编辑器看起来并不像真正拥有编辑过的脚本。当然它也没有把"速度"作为一个可见的领域。除此之外,我所尝试的任何东西都不会真正移动球。
1.好吧,我的Unity安装是全新的,我很容易相信我可能错过了一点。但是在哪里查找,如何诊断?是否有日志文件我应该查看?

  1. OnMove方法的含义在我能找到的文档中并不完全清楚。当鼠标移动时调用它吗?如果是,它也没有响应。
  • Tutorial: https://learn.unity.com/tutorial/moving-the-player?uv=2020.2&projectId=5f158f1bedbc2a0020e51f0d#
  • 系统:Mac OS 11.6
  • VS代码1.74.2
  • 脚本代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;

public class PlayerControl : MonoBehaviour {
    public float speed = 0;
    private RigidBody rb; // so Inspector doesn't see it
    private float movementX, movementY;

    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<RigidBody>();
    }

    void OnMove(InputValue mvt)
    {
        Vector2 movementVector = mvt.Get<Vector2>();
        movementX = movementVector.x;
        movementY = movementVector.y;
    }

    void FixedUpdate()
    {
        Vector3 movement = new Vector3(movementX, 0.0f, movementY);
        rb.AddForce(movement * speed);
    }
}
af7jpaap

af7jpaap1#

我不知道您是否安装了visual studio代码包,这是正确集成VS Code和Unity所必需的。
再次尝试保存脚本并返回到Unity。Unity现在应该刷新并重新编译脚本到汇编中,然后编辑器中会反映出更改。
对于您无法理解OnMove()的部分,解释如下:
由于您使用的是Unity的新输入系统,您应该已经创建了一个动作Map。Unity将自动调用动作Map中每个动作的函数,该动作Map在所有脚本中命名为[On + ActionName] OnMove()。由于,PlayerInput组件中的行为设置为发送消息。

相关问题