Я не могу объединить две планеты в единство - PullRequest
0 голосов
/ 23 марта 2020

Я хочу объединить две планеты, когда они сталкиваются, но я не уверен, как это сделать. Вот мой код:

                if (dist_between_objects < ((current.transform.localScale.x/2)+(arr[i].transform.localScale.x/2))) { 
                if (ob_c.collider_bool) {
                    avg_x_pos = Convert.ToSingle(((current.transform.position)[0] + (arr[i].transform.position)[0]) / 2);
                    avg_y_pos = Convert.ToSingle(((current.transform.position)[1] + (arr[i].transform.position)[1]) / 2);
                    avg_z_pos = Convert.ToSingle(((current.transform.position)[2] + (arr[i].transform.position)[2]) / 2);
                    Debug.Log(current + " hit " + arr[i]);
                    coll = Instantiate(Sphere_prefab, new Vector3((avg_x_pos), (avg_y_pos), (avg_z_pos)), Quaternion.identity);
                    Vector3 Tempc = coll.transform.localScale;
                    coll.GetComponent<Gravity>().mass = mass + mass2;
                    Tempc[0] = current.transform.localScale.x + arr[i].transform.localScale.x;
                    Tempc[1] = current.transform.localScale.y + arr[i].transform.localScale.y;
                    Tempc[2] = current.transform.localScale.z + arr[i].transform.localScale.z;
                    index = 0;
                    ob_c.collider_bool = false;
                }
                Destroy(current);
            }

Логическое значение ob_ c было логическим значением, которое, как я надеялся, заставило бы оператор if работать только на 1 pl anet, поэтому он создал только 1 новый pl anet , Но это все еще создает 2 новые планеты. Это также не делает новый pl anet большего размера (я надеялся, что переменная Temp c сделает это).

...