private void Update() { switch (moveType) { case MoveType.Circular: case MoveType.CircularSin: angleSpeed = AngleUtils.Rad2Deg(speed / radius); newPos = GetCircularPos(moveType); velocity = (newPos - transform.position).normalized * speed; transform.position = newPos; break; case MoveType.InDirection: break; default: throw new ArgumentOutOfRangeException(); } dirRelativeRocket = PvoUtils.DecToPolar(transform.position - pvo.position); }
private void UpdateTargets() { for (var i = 0; i < targets.Count; i++) { if (targetPositions.Count > i) { targetPositions[i] = ConvertDecardToPolar(targets[i].position); targetDecart1[i] = targets[i].position; targetDecart[i] = PvoUtils.PolarToDec(ConvertDecardToPolar(targets[i].position)); targetVelocities[i] = targets[i].GetComponent <TargetMover>().velocity; } else { targetPositions.Add(ConvertDecardToPolar(targets[i].position)); targetDecart1.Add(targets[i].position); targetDecart.Add(PvoUtils.PolarToDec(ConvertDecardToPolar(targets[i].position))); targetVelocities.Add(targets[i].GetComponent <TargetMover>().velocity); } } }
private Vector3 ConvertDecardToPolar(Vector3 vector3) => PvoUtils.DecToPolar(vector3 - pvo.position);