如何仅用 1 个坐标跟随我的玩家位置来移动我的敌人
How can I move my enemy by following my Player position with only 1 coordinate
我正在制作一个 2d 游戏,我被卡住了,我希望我的敌人只用 Y 坐标跟随我的玩家,这意味着如果我的玩家向上或向下移动,敌人会跟随但不会向前移动.
这是我当前在 Enemy Script 中的代码:
if (Vector2.Distance(transform.position,target.position) > 200)
{
transform.position = Vector2.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
}
else
{
// i want my enemy following my player with only Y coordinate right here, not moving forward anymore
}
if (Vector2.Distance(transform.position, target.position) > 200)
{
transform.position = Vector2.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
}
else
{
// i want my enemy following my player with only Y coordinate right here, not moving forward anymore
transform.position = Vector2.MoveTowards(transform.position, new Vector2(transform.position.x, target.position.y), speed * Time.deltaTime);
}
Vector2 结构有两个位置分量:x 和 y。要沿着 y-axis 移动,请创建一个临时 Vector2 来存储变换后的位置并仅复制 y 分量。
Vector2 temporaryPosition = Vector2.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
if (Vector2.Distance(transform.position, target.position) > 200)
{
//copying the x and y position if the distance is greater than 200
transform.position = temporaryPosition;
}
else
{
// copy the x position if the distance is below or equal to 200
transform.position = new Vector2 (transform.position.x, temporaryPosition.y);
}
您可以找到有关 Vector2 的更多文档here
我正在制作一个 2d 游戏,我被卡住了,我希望我的敌人只用 Y 坐标跟随我的玩家,这意味着如果我的玩家向上或向下移动,敌人会跟随但不会向前移动. 这是我当前在 Enemy Script 中的代码:
if (Vector2.Distance(transform.position,target.position) > 200)
{
transform.position = Vector2.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
}
else
{
// i want my enemy following my player with only Y coordinate right here, not moving forward anymore
}
if (Vector2.Distance(transform.position, target.position) > 200)
{
transform.position = Vector2.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
}
else
{
// i want my enemy following my player with only Y coordinate right here, not moving forward anymore
transform.position = Vector2.MoveTowards(transform.position, new Vector2(transform.position.x, target.position.y), speed * Time.deltaTime);
}
Vector2 结构有两个位置分量:x 和 y。要沿着 y-axis 移动,请创建一个临时 Vector2 来存储变换后的位置并仅复制 y 分量。
Vector2 temporaryPosition = Vector2.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
if (Vector2.Distance(transform.position, target.position) > 200)
{
//copying the x and y position if the distance is greater than 200
transform.position = temporaryPosition;
}
else
{
// copy the x position if the distance is below or equal to 200
transform.position = new Vector2 (transform.position.x, temporaryPosition.y);
}
您可以找到有关 Vector2 的更多文档here