Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. private void OnTriggerEnter2D(Collider2D collision)
  2. {
  3. if (mass > collision.gameObject.GetComponent<PlanetScript>().summaryMass)
  4. {
  5. itsBigger = true;
  6. }
  7. else
  8. {
  9. itsBigger = false;
  10. }
  11. // Инициализация itsBigger.
  12.  
  13. switch (itsBigger)
  14. {
  15. case true:
  16. minPlanet = collision.gameObject;
  17. maxPlanet = gameObject;
  18. break;
  19. case false:
  20. maxPlanet = collision.gameObject;
  21. minPlanet = gameObject;
  22. break;
  23. }
  24. PlanetScript maxPlanetScript = minPlanet.GetComponent<PlanetScript>();
  25. PlanetScript minPlanetScript = minPlanet.GetComponent<PlanetScript>();
  26. // Инициализация маленькой и большой планеты на основании переменной itsBigger.
  27.  
  28. planetVector = (Vector2)maxPlanet.transform.position;
  29. // Где будет находиться новая (или бОльшая) планета.
  30.  
  31. if (Mathf.Sqrt(maxPlanetScript.mass - minPlanetScript.mass) < (minPlanetScript.mass * minPlanetScript.mass))
  32. {
  33. mass2 = minPlanetScript.mass + maxPlanetScript.mass;
  34. // Масса новой планеты.
  35.  
  36. maxPlanetScript.mass = mass2;
  37. maxPlanet.transform.localScale = new Vector2(mass2, mass2);
  38. maxPlanet.GetComponent<SpriteRenderer>().color = (minPlanet.GetComponent<SpriteRenderer>().color + maxPlanet.gameObject.GetComponent<SpriteRenderer>().color) / 2;
  39. parentScript.current--;
  40.  
  41. parentScript.planets.Remove(minPlanet);
  42. Destroy(minPlanet);
  43. // Уничтожение меньшего объекта.
  44. }
  45. else
  46. {
  47. maxPlanet.GetComponent<PlanetScript>().orbitChilds.Add(minPlanet);
  48. minPlanet.GetComponent<PlanetScript>().orbitParent = maxPlanet;
  49. // Инициализация "родительских" переменных планет на орбите.
  50.  
  51. maxPlanet.GetComponent<PlanetScript>().Summary();
  52. // Инициализация суммарной массы планеты и планет её орбиты.
  53.  
  54. minPlanet.GetComponent<PlanetScript>().orbitOffset = (2 * maxPlanet.transform.localScale.x) * maxPlanet.GetComponent<PlanetScript>().orbitChilds.Count;
  55. // Нахождение расстояния от планеты до орбиты.
  56. }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement