Unity中给的报错是:(24,34):error CS1002;expected
rb.MovePosition(transform.position + v2 * speed * Time.fixedDeltaTime);是这行出现问题,麻烦大佬帮忙看看
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerC : MonoBehaviour//上述为原来所有,这里不讨论
{
// Start is called before the first frame update
public float speed = 5f;//定义变量speed的速度
//publicprivate可访问性
Rigidbody2D rb;//申明一个Rigidbody2D类型的对象rb,格式
Animator anim;//申明一个Animator类型的对象anim,格式流程如此
private void Start()//游戏运行前的准备情况
{
rb = GetComponent<Rigidbody2D>();//得到内容
anim = GetComponent<Animator>();//得到内容
}
// Update is called once per frame
private void FixedUpdate()//update方法按照固定时间间隔调用update(根据用户设备);fiexed:以固定的频率调用,不会受到图像刷新帧速率的影响
{
float h = Input.GetAxis("Horizontal");//用户传入横轴左负右正
float v = Input.GetAxis("Vertical");//用户传入数据上正下负
Vector2 v2 = new Vector2(h, v);//vector2是2维向量,vector3是3维向量;此句意思是将名为v2的二维向量设为(h,v);
rb.MovePosition(transform.position + v2 * speed * Time.fixedDeltaTime);
//transform.position物体在世界坐标系中的位置
//从上一帧开始到当前帧结束,这两帧之间的时间间隔,Time.deltaTime
//rb.MovePosition是一种方法
if (v2.magnitude > 0f)
{
anim.SetFloat("x", h);
anim.SetFloat("y", v);
anim.SetBool("isWalking", true);
}
else
{
anim.SetBool("isWalking", false);
}
}
}