Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void OnTriggerEnter2D(Collider2D collision)
- {
- if (mass > collision.gameObject.GetComponent<PlanetScript>().summaryMass)
- {
- itsBigger = true;
- }
- else
- {
- itsBigger = false;
- }
- // Инициализация itsBigger.
- switch (itsBigger)
- {
- case true:
- minPlanet = collision.gameObject;
- maxPlanet = gameObject;
- break;
- case false:
- maxPlanet = collision.gameObject;
- minPlanet = gameObject;
- break;
- }
- PlanetScript maxPlanetScript = minPlanet.GetComponent<PlanetScript>();
- PlanetScript minPlanetScript = minPlanet.GetComponent<PlanetScript>();
- // Инициализация маленькой и большой планеты на основании переменной itsBigger.
- planetVector = (Vector2)maxPlanet.transform.position;
- // Где будет находиться новая (или бОльшая) планета.
- if (Mathf.Sqrt(maxPlanetScript.mass - minPlanetScript.mass) < (minPlanetScript.mass * minPlanetScript.mass))
- {
- mass2 = minPlanetScript.mass + maxPlanetScript.mass;
- // Масса новой планеты.
- maxPlanetScript.mass = mass2;
- maxPlanet.transform.localScale = new Vector2(mass2, mass2);
- maxPlanet.GetComponent<SpriteRenderer>().color = (minPlanet.GetComponent<SpriteRenderer>().color + maxPlanet.gameObject.GetComponent<SpriteRenderer>().color) / 2;
- parentScript.current--;
- parentScript.planets.Remove(minPlanet);
- Destroy(minPlanet);
- // Уничтожение меньшего объекта.
- }
- else
- {
- maxPlanet.GetComponent<PlanetScript>().orbitChilds.Add(minPlanet);
- minPlanet.GetComponent<PlanetScript>().orbitParent = maxPlanet;
- // Инициализация "родительских" переменных планет на орбите.
- maxPlanet.GetComponent<PlanetScript>().Summary();
- // Инициализация суммарной массы планеты и планет её орбиты.
- minPlanet.GetComponent<PlanetScript>().orbitOffset = (2 * maxPlanet.transform.localScale.x) * maxPlanet.GetComponent<PlanetScript>().orbitChilds.Count;
- // Нахождение расстояния от планеты до орбиты.
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement