视频中的脚本最初有很多错误,我已经尽了最大的努力来修复代码,并尽可能减少错误
我当前脚本中的错误包括:资产\播放器马达.cs(9,14):错误CS1519:类、结构或接口成员声明中的标记“=”无效
资产\播放器马达.cs(9,32):错误CS1001:应为标识符
我的剧本是:
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class PlayerMotor : MonoBehaviour
{
private Vector3 velocity;
velocity = new Vector3(zero);
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
//Gets a movement vector
public void Move (Vector3 _velocity)
{
velocity = _velocity;
}
//Run every physics iteration
void FixedUpdate ()
{
PerformMovement();
}
//Perfrom movement based on velocity variable
void PerformMovement()
{
if (velocity != Vector3.zero){
rb.MovePosition(rb.position + velocity * Time.fixedDeltaTime);
}
}
}
2条答案
按热度按时间wlwcrazw1#
1.你不能只在类体内写代码,比如:
velocity = new Vector3(zero);
。你能做的,也可能是你认为你能做的,是在声明中初始化变量:private Vector3 velocity = new Vector3(zero);
不过,这有更多的问题。1.即使是这样,您也必须将Vector3零声明为静态变量。
1.总而言之,只要在需要的地方使用
Vector3.zero
,自己声明它是没有意义的。oprakyz72#
这不起作用。您可以这样写
或者在
Start
这样的方法中赋值:另外,
new Vector3(zero)
也不起作用,因为你从来没有定义过zero
。这可能是Vector3.zero
的拼写错误。另一个选择是new Vector3(0, 0, 0)
。