RandDGames
新成员
- 已加入
- 2021年1月6日
- 留言内容
- 3
- 编程经验
- Beginner
大家好,
主要初学者,如果这看起来很痛苦,我深表歉意。
我正在按照一个教程让玩家精灵来回走动,他们使用了Vector2却没有问题,但是当我在Visual Studio中键入它时却无法识别它。我一直遵循本教程,并拥有此代码。我发现的唯一一件事可能是我没有使用正确的名称空间,但似乎使用的是与本教程相同的名称空间,所以现在我都感到困惑。
任何和所有帮助表示赞赏。
没有人有任何想法导致我从头开始同样的问题,甚至尝试使用System.Collections.Numeric尝试不同的教程和同样的问题。还是行不通。请帮忙。我想我会提到我认为它是Vector2的原因,因为每次使用Vector时,它都会显示为白色,而本教程中则显示为颜色,对于协程中的大多数代码也是如此。
我相信我的代码与教程完全相同。请帮忙。
主要初学者,如果这看起来很痛苦,我深表歉意。
我正在按照一个教程让玩家精灵来回走动,他们使用了Vector2却没有问题,但是当我在Visual Studio中键入它时却无法识别它。我一直遵循本教程,并拥有此代码。我发现的唯一一件事可能是我没有使用正确的名称空间,但似乎使用的是与本教程相同的名称空间,所以现在我都感到困惑。
任何和所有帮助表示赞赏。
C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float moveSpeed;
public bool isMoving;
private Vector2 input;
private void Update()
{
if (!isMoving)
{
input.x = input.GetAxisRaw("Horizontal");
input.y = input.GetAxisRaw("Virtical");
if (input != Vector2.zero)
{
var targetPos = transform.position;
targetPos.x += input.x;
targetPos.y += input.y;
StartCoroutine(Move(targetPos));
}
}
}
IEnumerator Move(Vector3 targetPos)
{
isMoving = true;
while ((targetPos - transform.position).sqrMagnitude > mathf.Epsilon)
{
transform.position = Vector3.MoveTowards(transform.position, targetPos, moveSpeed * Time.deltaTime);
yield return null;
}
transform.position = targetPos;
isMoving = false;
}
}
我相信我的代码与教程完全相同。请帮忙。