我正在学习Unity,通过滚动球教程,我已经到了视频8,在那里我添加了一行"公共浮动速度= 0; "这揭示了我已经怀疑的事情,即在某种程度上我的脚本在Unity编辑器中没有"接受"。
我使用Visual Studio代码作为我的常规编辑器。我告诉Unity它将是我的脚本编辑器。在本教程中,我按照教程的建议按下"新建脚本"按钮,并在编辑器中创建文件PlayerControl.cs。然而,如屏幕截图所示,编辑器看起来并不像真正拥有编辑过的脚本。当然它也没有把"速度"作为一个可见的领域。除此之外,我所尝试的任何东西都不会真正移动球。
1.好吧,我的Unity安装是全新的,我很容易相信我可能错过了一点。但是在哪里查找,如何诊断?是否有日志文件我应该查看?
- 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);
}
}
1条答案
按热度按时间af7jpaap1#
我不知道您是否安装了visual studio代码包,这是正确集成VS Code和Unity所必需的。
再次尝试保存脚本并返回到Unity。Unity现在应该刷新并重新编译脚本到汇编中,然后编辑器中会反映出更改。
对于您无法理解OnMove()的部分,解释如下:
由于您使用的是Unity的新输入系统,您应该已经创建了一个动作Map。Unity将自动调用动作Map中每个动作的函数,该动作Map在所有脚本中命名为[On + ActionName] OnMove()。由于,PlayerInput组件中的行为设置为发送消息。