团结敌人前进
Unity enemy move forward
我在 Unity 上有一个敌人,敌人跟随玩家,当玩家处于特定距离时,我希望敌人 运行 X 个单位不停地移动。这个想法是敌人运行,然后他累了,玩家可以从后面攻击他。
如何让敌人运行 X 距离不停地前进?
How can i make enemy run X distance forward without stopping?
取决于很多事情,你的游戏是如何处理移动的?是二维的吗? 3D?等...
例如,如果您在 Enemy GameObject 上使用角色控制器(在 2D 中)
Vector2 moveDirection = Vector2.zero;
void Update(){
CharacterController player = GetComponent<CharacterController>();
if (player.isGrounded)
{
// constantly move horizontally
moveDirection.x = valuespeed;
player.Move(moveDirection * Time.deltaTime);
}
}
这只是一些基础理论。对于 3D,您添加一个维度并使用当前的前向向量左右选择方向。
至于检查 X 值,你可以做的是在你的 Enemy class 中,当 "running mode" 被触发时,你保存原点位置并在更新中检查CurrentPosition和Origin的距离(Vector3.Distance(……))只要距离小于X,你就让他运行。如果不是,则您不在 "running mode".
我在 Unity 上有一个敌人,敌人跟随玩家,当玩家处于特定距离时,我希望敌人 运行 X 个单位不停地移动。这个想法是敌人运行,然后他累了,玩家可以从后面攻击他。
如何让敌人运行 X 距离不停地前进?
How can i make enemy run X distance forward without stopping?
取决于很多事情,你的游戏是如何处理移动的?是二维的吗? 3D?等...
例如,如果您在 Enemy GameObject 上使用角色控制器(在 2D 中)
Vector2 moveDirection = Vector2.zero;
void Update(){
CharacterController player = GetComponent<CharacterController>();
if (player.isGrounded)
{
// constantly move horizontally
moveDirection.x = valuespeed;
player.Move(moveDirection * Time.deltaTime);
}
}
这只是一些基础理论。对于 3D,您添加一个维度并使用当前的前向向量左右选择方向。
至于检查 X 值,你可以做的是在你的 Enemy class 中,当 "running mode" 被触发时,你保存原点位置并在更新中检查CurrentPosition和Origin的距离(Vector3.Distance(……))只要距离小于X,你就让他运行。如果不是,则您不在 "running mode".