C# 团结,朝着奇怪的方向前进
好吧,我有带标记敌人的游戏对象,我收集它们的方式如下:C# 团结,朝着奇怪的方向前进,c#,unity3d,vector,position,move,C#,Unity3d,Vector,Position,Move,好吧,我有带标记敌人的游戏对象,我收集它们的方式如下: enemies = GameObject.FindGameObjectsWithTag("Enemy"); 之后,我试图移动第一个敌人: int newPositionX; int newPositionY; bool targetReached = false; int moveSpeed = 1; void Update() { if (!targetReach
enemies = GameObject.FindGameObjectsWithTag("Enemy");
之后,我试图移动第一个敌人:
int newPositionX;
int newPositionY;
bool targetReached = false;
int moveSpeed = 1;
void Update()
{
if (!targetReached)
{
newPositionX = Mathf.FloorToInt(enemies[0].transform.position.x)-1;
newPositionY = Mathf.FloorToInt(enemies[0].transform.position.y);
enemies[0].transform.position = Vector3.MoveTowards(enemies[0].transform.position,
new Vector3(newPositionX, newPositionY), moveSpeed * Time.deltaTime);
targetReached = true;
}
if (Vector3.Distance(enemies[0].transform.position, new Vector3(
newPositionX, newPositionY)) < 0.1f)
{
targetReached = false;
}
}
敌人在移动,但我无法阻止它。这让我认为,要使某个对象移动,应该在更新中永久调用moveToward函数?moveToward返回一个向量,使游戏对象朝目标方向移动一步
另外,我不确定这一点,但看看您的代码,将targetReached设置为false的if语句仅在targetReached已经为false时运行,因此您可能希望将其从if中删除!你可能认为Unity是一个完整的游戏引擎 事实并非如此 最基本的东西,比如吐温和移动,并不是以地球上其他游戏引擎提供的方式提供的 因此,您需要下载并设置插件和附加组件以获得基本功能 搜索用于Unity的tweening引擎,并阅读它们,因为您需要了解它们以及它们如何在下次遇到Unity缺少的基础知识时融入Unity
targetReached = true;