F3DWarpJump.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using UnityEngine;
  2. using System.Collections;
  3. public class F3DWarpJump : MonoBehaviour {
  4. public ParticleSystem WarpSpark;
  5. public Transform ShipPos;
  6. public float ShipJumpSpeed;
  7. public Vector3 ShipJumpStartPoint;
  8. public Vector3 ShipJumpEndPoint;
  9. public bool SendOnSpawned;
  10. bool isWarping;
  11. // Use this for initialization
  12. void Start ()
  13. {
  14. if (SendOnSpawned)
  15. BroadcastMessage("OnSpawned", SendMessageOptions.DontRequireReceiver);
  16. }
  17. public void OnSpawned()
  18. {
  19. isWarping = false;
  20. WarpSpark.transform.localPosition = ShipJumpStartPoint;
  21. ShipPos.position = WarpSpark.transform.position;
  22. F3DTime.time.AddTimer(3, 1, OnWarp);
  23. }
  24. void OnWarp()
  25. {
  26. isWarping = true;
  27. }
  28. void ShiftShipPosition()
  29. {
  30. WarpSpark.transform.localPosition = Vector3.Lerp(WarpSpark.transform.localPosition, ShipJumpEndPoint, Time.deltaTime * ShipJumpSpeed);
  31. ShipPos.position = WarpSpark.transform.position;
  32. }
  33. void Update()
  34. {
  35. if (isWarping)
  36. ShiftShipPosition();
  37. }
  38. }