【发布时间】:2019-05-24 00:09:26
【问题描述】:
我正在编写我的游戏 Boss 行为,在战斗的最后阶段,Boss 应该冲向玩家,然后回到原来的位置。等待 5 秒,然后执行相同操作。
我尝试使用协程和 Vector2.MoveTowards() 来实现这一点,但没有得到想要的效果,首先老板没有“移向”玩家,而是立即出现在目标位置,然后就呆在那里,没有后退。
下面是我的代码:
private Vector2 chargeTarget;
private Vector2 tankStartPosition;
void Start()
{
chargeTarget = new Vector2(-5.0f, transform.position.y);
tankStartPosition = transform.position;
}
void Update()
{
if (Time.time > nextCharge)
{
StartCoroutine(TankCharge());
nextCharge = Time.time + chargeRate;
}
}
IEnumerator TankCharge()
{
transform.position = Vector2.MoveTowards(tankStartPosition, chargeTarget, Time.deltaTime * chargeSpeed);
transform.position = Vector2.MoveTowards(chargeTarget, tankStartPosition, Time.deltaTime * returnSpeed);
}
知道我在这里做错了什么吗?以及如何获得我想要的操作?
谢谢
【问题讨论】: