protected override void DestroyCar(Road.Car car, Vector3 position) { car.endPos = position; car.endTime = Score.timer; var carInfo = new StatisticsManager.EnemyMoveInfo( car.startPos, car.startTime, car.endPos, car.endTime); StatisticsManager.PushCarInfo(carInfo); }
protected override void DeactivatePlane() { //Debug.Log("override void DeactivatePlane()"); var plane = activePlanes.Peek(); plane.endPos = plane.rigidbody.position; plane.endTime = Score.timer; var planeInfo = new StatisticsManager.EnemyMoveInfo( plane.startPos, plane.startTime, plane.endPos, plane.endTime); StatisticsManager.PushPlaneInfo(planeInfo); base.DeactivatePlane(); }
public override void FixedUpdate() { if (isMoveActive) { if (!prevActiveState && isSpawnActive) { prevActiveState = true; for (int i = 0; i < maxMobsCount; i++) { mobs[i].renderer.enabled = true; } } for (int i = 0; i < maxMobsCount; i++) { var rb = mobs[i].rigidbody; Vector3 pos = rb.position; CameraMover c = CameraMover.instance; Vector3 newPos = pos; if (isSpawnActive && (pos.z < character.position.z || pos.y < character.position.y - 100)) { Vector3 offset = Quaternion.AngleAxis(Random.Range( zombieCreationAngleRange.x, zombieCreationAngleRange.y), c.upAxis) * c.moveDir; newPos = character.position + offset * 54; if (mobs[i].startPos.z > 0) { mobs[i].endPos = pos; mobs[i].endTime = Score.timer; var zombieInfo = new StatisticsManager.EnemyMoveInfo( mobs[i].startPos, mobs[i].startTime, mobs[i].endPos, mobs[i].endTime); StatisticsManager.PushZombieInfo(zombieInfo); } mobs[i].startPos = newPos; mobs[i].startTime = Score.timer; rb.position = newPos; rb.velocity = Vector3.zero; rb.rotation = Quaternion.identity; } else { Vector3 moveDir = -(newPos - character.position); moveDir.y = 0; moveDir.Normalize(); rb.MovePosition(newPos + 5 * Time.fixedDeltaTime * moveDir); rb.MoveRotation(Quaternion.LookRotation(moveDir, Vector3.up)); } } } else if (!isMoveActive && prevActiveState) { prevActiveState = false; for (int i = 0; i < maxMobsCount; i++) { var mob = mobs[i]; mob.renderer.enabled = false; if (mob.startPos.z > 0) { mob.endPos = mob.rigidbody.position; mob.endTime = Score.timer; var zombieInfo = new StatisticsManager.EnemyMoveInfo( mob.startPos, mob.startTime, mob.endPos, mob.endTime); StatisticsManager.PushZombieInfo(zombieInfo); } mob.startPos.z = -1f; } } }