public override void Tick(int deltaTimeMS) { if (!CouldRun()) { return; } if (Math_F.Approximate3D(this.ownerEntity.position, this.tarPos) || IsPassed(this.tarPos)) { //this.tarPos = Math_F.RandomInsideCircle(this.orgPos, this.radius); WanderArrived.Send(this.ownerEntity.entityID); return; } this.tickDir = Math_F.TwoPositionDir(this.ownerEntity.position, this.tarPos); ////活动移动量 this.tickSpeed = this.speed * deltaTimeMS * 0.001f; //活动移动量 this.tickMove = this.tickDir * this.tickSpeed; ////新位置 this.ownerEntity.position += tickMove; }
public override void Tick(int deltaTimeMS) { if (!CouldRun()) { return; } float normalizedTime = (Time.time - beginTime) * normalizedSpeed; normalizedTime = reverse ? 1 - normalizedTime : normalizedTime; if ((!reverse && normalizedTime - 1 >= 0.001f) || (reverse && normalizedTime <= 0.001f)) { reverse = !reverse; WanderArrived.Send(this.ownerEntity.entityID); return; } AnimTo(normalizedTime); }