PortalsController.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class PortalsController : MonoBehaviour
  5. {
  6. public PortalsController targetPortal;
  7. public List<Rigidbody> rbs = new List<Rigidbody>();
  8. public float TransmitCD;
  9. private void OnTriggerEnter(Collider other)
  10. {
  11. BeSearchTrigger beSearchTrigger = other.GetComponent<BeSearchTrigger>();
  12. if (beSearchTrigger != null)
  13. {
  14. Rigidbody rb = beSearchTrigger.GetComponentInParent<Rigidbody>();
  15. AddPortal(rb);
  16. return;
  17. }
  18. Bullet bullet = other.GetComponent<Bullet>();
  19. if(bullet != null)
  20. {
  21. Rigidbody rb = bullet.GetComponentInParent<Rigidbody>();
  22. AddPortal(rb);
  23. }
  24. }
  25. public void AddPortal(Rigidbody rb)
  26. {
  27. if (!targetPortal.rbs.Exists(t => t == rb))
  28. {
  29. if (!rbs.Exists(t => t == rb))
  30. {
  31. rbs.Add(rb);
  32. Vector3 targetPos = targetPortal.transform.position;
  33. targetPos.y += rb.transform.position.y - transform.position.y;
  34. rb.transform.position = targetPos;
  35. }
  36. }
  37. }
  38. }