【发布时间】:2021-03-07 12:18:51
【问题描述】:
所以我希望我的敌人移动到一个航点然后增加一个列表以便它可以移动到下一个航点,但不知何故我的敌人移动到第一个航点然后卡在这个位置。 遮阳篷将是一个梦想! 这是我的代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyPathing : MonoBehaviour
{
[SerializeField] List<Transform> waypoints;
[SerializeField] float moveSpeed = 2f;
int waypointIndex = 0;
// Start
void Start()
{
transform.position = waypoints[waypointIndex].transform.position;
}
// Update
void Update()
{
Move();
}
private void Move()
{
if (waypointIndex <= waypoints.Count - 1)
{
var targetPosition = waypoints[waypointIndex].transform.position;
var movementThisFrame = moveSpeed * Time.deltaTime;
transform.position = Vector2.MoveTowards
(transform.position, targetPosition, movementThisFrame);
if (transform.position == targetPosition)
{
waypointIndex++;
}
}
else
{
Destroy(gameObject);
}
}
}
顺便说一句。在控制台 Unity 中说:Assets\Scripts\EnemyPathing.cs(7,38):warning CS0649: Field 'EnemyPathing.waypoints' is never assigned to and will always have its default value null
【问题讨论】:
-
作为航点列表,我设置了 3 个空游戏对象,称为:“航点 (0)、航点 (1)、航点 (2)”,每个我都放置在不同的位置
-
请使用正确的标签...
unityscript是或更好曾经是一种 JavaScript 风格,类似于早期 Unity 版本中使用的自定义语言,现在早已弃用...你的代码显然是c#
标签: c# visual-studio unity3d path-finding