Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
This question was closed May 14, 2021 at 03:41 PM by MilitaryG.
avatar image
0
Question by MilitaryG · May 13, 2021 at 10:17 AM · c#exceptionstackoverflow

StackOverflowException: The requested operation caused a stack overflow.

I'm trying to make recursive function with hoops but I don't know how else write:

  Way[way].BuildHallway(way, hoop);

 using UnityEngine;
 using System.Collections;
 using System.Collections.Generic;
 
 
 
 public class Node : MonoBehaviour {
     public static List<System.Action> BuildedHallways = new List<System.Action>();
 
     public static float falseWay = 0.3f;
     public static float endFalse = 0.5f;
     public static int totalTrueWays = 10;
     public static byte stop = 5;
 
 
 
 
     public int counTrue = 0;
     public int countFalse = 0;
     public bool builded = false;
     public bool hallBuild = false;
     public bool correctWay = true;
     private byte element;
     public Node[] Way = new Node[6];//F/B/L/R/U/D
     public bool[] hallway = new bool[6]{false, false, false, false, false, false};
     //I think I don't need way
     public void BackWay(Node Back, byte way){
         if (way % 2 == 0) {
             way++;
         }
         else {
             way--;
         }
         Way [way] = Back;
         hallway [way] = true;
     }
     public void GetNewWay(Node Back, int way, bool trueWay, int count, int hoop){
         if (hoop > 0 && !builded) {
             hoop--;
             element = (byte)(Random.Range(1, 6));
             element = 1;
             //Debug.Log (trueWay);
             if (trueWay) {
                 //!!!!!!!!!!!!!!!!here we make new hallway and make an ending
                 if (totalTrueWays == count) {
                     Debug.Log ("finished");
                     return;
                 }
 
                 counTrue = ++count;
                 correctWay = true;
 
 
                 //witch way
 
                 int i = Random.Range (0, 6);
                 i = 0;
                 //if way is empty
                 RaycastHit hit;
 
                 byte b=0;
                 bool made = false;
                 if(Physics.Raycast(transform.position, V3HallWay(new Vector3(0,0,0), (byte)i), out hit, 10)){//maybe we don't need hit
                     for(; b<6; b++){
                         if(! Physics.Raycast(transform.position, V3HallWay(new Vector3(0,0,0), (byte)i), 10)){
                             i=b;
                             made = true;
                             break;
                         }
                     }
                 }
                 if(! made){
                     //let's make end as there are non able to get through
                 }
                 //Debug.Log ("here1");
                 hallway[i] = true;
                 //here we create the Node
                 Transform temp = MasterPool.CreateMe (0);
                 //where it gowes that way it's made
                 Vector3 V = new Vector3 (transform.position.x, transform.position.y, transform.position.z);
                 V = V3HallWay (V, (byte)i);
 
                 temp.transform.position = V;
 
                 Node N = temp.GetComponent<Node> ();
                 Way [i] = N;
                 N.BackWay (N, (byte)i);
                 N.GetNewWay (this, i, true, count, hoop);
 
                 //5 true ways to get to check point
                 if((counTrue % 5) == 0){
                     //Transform checkpoint = MasterPool.CreateMe(12);
                     //checkpoint.position = transform.position;
                 }
             }
             else {
                 //!!!!!!!!!!!!!!!!here we make new hallways and make the door well we need to merge it with false ways
                 countFalse = ++count;
                 if (stop == countFalse) {
                     Debug.Log ("stop");
                     return;
                 }
             }
             builded = true;
             // lets create 5 possible false hallways
             /*for (int i = 0; i < 6; i++) {
                 //if way is empty
                 if(! Physics.Raycast(transform.posittion, V3HallWay(new Vector3(0,0,0)(byte)i), out hit, 30)){//maybe we don't need hit // 30m so that true way has ability to pass arount them
                     if (way != i) {
                         float r = Random.Range (0, 100) / 100;//false hallway
                         if (r < falseWay) {
                             hallway [i] = true;//it is going thru
                             //Debug.Log(r + "   " + i);
                             //we make it possible end hallway
                             r = Random.Range (0, 100) / 100;//stop hallway
                             if (r < endFalse) {}
                             //false hallway is made
                             else {
                                 Transform temp = MasterPool.CreateMe (0);
                                 Vector3 V = transform.position; //new Vector3 (transform.position.x, transform.position.y, transform.position.z);
                                 V = V3HallWay (V, (byte)i);
                                 
                                 temp.transform.position = V;
                                 
                                 Node N = temp.GetComponent<Node> ();
                                 Way [i] = N;
                                 //so that we start counting false ways form 0
                                 if(trueWay){
                                     count = 0;
                                 }
                                 N.GetNewWay (this, i, false, count, hoop);
                             }
                         }
                     }
                 }
             }*/
         }
     }
     public void BuildHallway(byte way, int hoop){
         if(hoop>0){
             hoop--;
             // way //F/B/L/R/U/D
             //build hallway
             if (builded && ! hallBuild) {
                 //BuildedHallways.Add(DebuildMe);
                 hallBuild = true;
                 //foward
                 if (hallway [0]) {
                     Transform temp = MasterPool.CreateMe (element * 2);
                     temp.parent = this.transform;
                     Vector3 V = new Vector3 (transform.position.x, transform.position.y, transform.position.z);
                     //!!!!!!!!!!!!!!!check if it's right!!!!!!!!!!!!!!//
                     V = transform.position;
                     V.z += 3f;
                     //right
                     V.x += 1;
                     temp.transform.position = V;
                     temp.parent = this.transform;
                     //left
                     temp = MasterPool.CreateMe (element * 2);
                     V.x -= 2;
                     temp.transform.position = V;
                     temp.parent = this.transform;
                     //up
                     temp = MasterPool.CreateMe (element * 2);
                     V.x += 1;
                     V.y += 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 0, 90);
                     temp.parent = this.transform;
                     //down
                     temp = MasterPool.CreateMe (element * 2);
                     V.y -= 2;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 0, 90);
                     temp.parent = this.transform;
                     if(Way[0] == null){//end hallway
                         temp = MasterPool.CreateMe (element * 2+1);
                         V.z += 2;
                         V.y += 1;
                         temp.transform.position = V;
                         temp.transform.Rotate (0, 90, 0);
                         temp.parent = this.transform;
                         //right
                         /*temp = MasterPool.CreateMe (element * 2+1);
                         V.x += 1;
                         temp.transform.position = V;
                         temp.transform.Rotate (0, 125, 0);
                         temp.parent = this.transform;
                         //left
                         temp = MasterPool.CreateMe (element * 2+1);
                         V.x -= 2;
                         temp.transform.position = V;
                         temp.transform.Rotate (0, 90, 0);
                         temp.parent = this.transform;
                         //up
                         temp = MasterPool.CreateMe (element * 2+1);
                         V.y += 1;
                         V.x -= 1;
                         temp.transform.position = V;
                         temp.transform.Rotate (0, 90, 0);
                         temp.parent = this.transform;
                         //down
                         temp = MasterPool.CreateMe (element * 2+1);
                         V.y -= 2;
                         temp.transform.position = V;
                         temp.transform.Rotate (0, 90, 0);
                         temp.parent = this.transform;
                     */}
                 }
                 else{
                     Transform temp = MasterPool.CreateMe (element * 2+1);
                     Vector3 V = transform.position;
                     V.z += 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 90, 0);
                     temp.parent = this.transform;
                 }
                 //back
                 if (hallway [1]) {
                     Transform temp = MasterPool.CreateMe (element * 2);
                     temp.parent = this.transform;
                     Vector3 V = new Vector3 (transform.position.x, transform.position.y, transform.position.z);
                     V.z -= 3f;
                     //right
                     V.x += 1;
                     temp.transform.position = V;
                     temp.parent = this.transform;
                     //left
                     temp = MasterPool.CreateMe (element * 2);
                     V.x -= 2;
                     temp.transform.position = V;
                     temp.parent = this.transform;
                     //up
                     temp = MasterPool.CreateMe (element * 2);
                     V.x += 1;
                     V.y += 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 0, 90);
                     temp.parent = this.transform;
                     //down
                     temp = MasterPool.CreateMe (element * 2);
                     V.y -= 2;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 0, 90);
                     temp.parent = this.transform;
                     if(Way[1] == null){//end hallway
                         temp = MasterPool.CreateMe (element * 2 + 1);
                         V.y += 1;    
                         V.z -= 2;
                         temp.transform.position = V;
                         temp.transform.Rotate (0, 90, 0);
                         temp.parent = this.transform;
                     }
                 }
                 else{
                     Transform temp = MasterPool.CreateMe (element * 2+1);
                     Vector3 V = transform.position;
                     V.z -= 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 90, 0);
                     temp.parent = this.transform;
                 }
                 //left
                 if (hallway [2]) {
                     Transform temp = MasterPool.CreateMe (element * 2);
                     temp.parent = this.transform;
                     Vector3 V = new Vector3 (transform.position.x, transform.position.y, transform.position.z);
                     V.x -= 3f;
                     //right
                     V.z += 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 90, 0);
                     temp.parent = this.transform;
                     //left
                     temp = MasterPool.CreateMe (element * 2);
                     V.z -= 2;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 90, 0);
                     temp.parent = this.transform;
                     //up
                     temp = MasterPool.CreateMe (element * 2);
                     V.z += 1;
                     V.y += 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 90, 90);
                     temp.parent = this.transform;
                     //down
                     temp = MasterPool.CreateMe (element * 2);
                     V.y -= 2;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 90, 90);
                     temp.parent = this.transform;
                     if(Way[2] == null){//end hallway
                         temp = MasterPool.CreateMe (element * 2 + 1);
                         V.y += 1;    
                         V.x -= 2;
                         temp.transform.position = V;
                         temp.parent = this.transform;
                     }
                 }
                 else{
                     Transform temp = MasterPool.CreateMe (element * 2+1);
                     Vector3 V = transform.position;
                     V.x -= 1;
                     temp.transform.position = V;
                     temp.parent = this.transform;
                 }
                 //right
                 if (hallway [3]) {
                     Transform temp = MasterPool.CreateMe (element * 2);
                     temp.parent = this.transform;
                     Vector3 V = new Vector3 (transform.position.x, transform.position.y, transform.position.z);
                     V.x += 3f;
                     //right
                     V.z -= 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 90, 0);
                     temp.parent = this.transform;
                     //left
                     temp = MasterPool.CreateMe (element * 2);
                     V.z += 2;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 90, 0);
                     temp.parent = this.transform;
                     //up
                     temp = MasterPool.CreateMe (element * 2);
                     V.z -= 1;
                     V.y += 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 90, 90);
                     temp.parent = this.transform;
                     //down
                     temp = MasterPool.CreateMe (element * 2);
                     V.y -= 2;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 90, 90);
                     temp.parent = this.transform;
                     if(Way[3] == null){//end hallway
                         temp = MasterPool.CreateMe (element * 2 + 1);
                         V.x += 2;
                         V.y += 1;
                         temp.transform.position = V;
                         temp.parent = this.transform;
                     }
                 }
                 else{
                     Transform temp = MasterPool.CreateMe (element * 2+1);
                     Vector3 V = transform.position;
                     V.x += 1;
                     temp.transform.position = V;
                     temp.parent = this.transform;
                 }
                 //up
                 if (hallway [4]) {
                     Transform temp = MasterPool.CreateMe (element * 2);
                     temp.parent = this.transform;
                     Vector3 V = new Vector3 (transform.position.x, transform.position.y, transform.position.z);
                     V.y += 3f;
                     //right
                     V.x += 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (90, 0, 0);
                     temp.parent = this.transform;
                     //left
                     temp = MasterPool.CreateMe (element * 2);
                     V.x -= 2;
                     temp.transform.position = V;
                     temp.transform.Rotate (90, 0, 0);
                     temp.parent = this.transform;
                     //foward
                     temp = MasterPool.CreateMe (element * 2);
                     V.x += 1;
                     V.z += 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (90, 90, 0);
                     temp.parent = this.transform;
                     //back
                     temp = MasterPool.CreateMe (element * 2);
                     V.z -= 2;
                     temp.transform.position = V;
                     temp.transform.Rotate (90, 90, 0);
                     temp.parent = this.transform;
                     if(Way[4] == null){//end hallway
                         temp = MasterPool.CreateMe (element * 2 +1);
                         V.z += 1;
                         V.y += 2;
                         temp.transform.position = V;
                         temp.transform.Rotate (0, 0, 90);
                         temp.parent = this.transform;
                     }
                 }
                 else{
                     Transform temp = MasterPool.CreateMe (element * 2+1);
                     Vector3 V = transform.position;
                     V.y += 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 0, 90);
                     temp.parent = this.transform;
                 }
                 //down
                 if (hallway [5]) {
                     Transform temp = MasterPool.CreateMe (element * 2);
                     temp.parent = this.transform;
                     Vector3 V = new Vector3 (transform.position.x, transform.position.y, transform.position.z);
                     V.y -= 3f;
                     //right
                     V.x += 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (90, 0, 0);
                     temp.parent = this.transform;
                     //left
                     temp = MasterPool.CreateMe (element * 2);
                     V.x -= 2;
                     temp.transform.position = V;
                     temp.transform.Rotate (90, 0, 0);
                     temp.parent = this.transform;
                     //foward
                     temp = MasterPool.CreateMe (element * 2);
                     V.x += 1;
                     V.z += 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (90, 90, 0);
                     temp.parent = this.transform;
                     //back
                     temp = MasterPool.CreateMe (element * 2);
                     V.z -= 2;
                     temp.transform.position = V;
                     temp.transform.Rotate (90, 90, 0);
                     temp.parent = this.transform;
                     //something wrong here don't know what
                     /*for(int m=0; m<6; m++){
                         Debug.Log ("way 5 trues are");
                         Debug.Log(Way[m] == null);
                     }*/
                     if(Way[5] == null){//end hallway
                         temp = MasterPool.CreateMe (element * 2 + 1);
                         V.z += 1;
                         V.y -= 2;
                         temp.transform.position = V;
                         temp.transform.Rotate (0, 0, 90);
                         temp.parent = this.transform;
 
                     }
                 }
                 else{
                     Transform temp = MasterPool.CreateMe (element * 2+1);
                     Vector3 V = transform.position;
                     V.y -= 1;
                     temp.transform.position = V;
                     temp.transform.Rotate (0, 0, 90);
                     temp.parent = this.transform;
                 }
             }
         }
         if(Way[way] != null){
             Way[way].BuildHallway(way, hoop);
         }
     }
     public void DebuildMe(){
         hallBuild = false;
         //destroy all halls
         /*I think it's like this
         while(transform.childCount > 0){
             Transform temp = transform.child[0];
             temp.parent = null;
             MasterPool.DestroyMe(temp);
         }
         */
     }
     public Vector3 V3HallWay (Vector3 Origin, byte way){
         if (way == 0) {
             Origin.z += 10;
         }
         else if (way == 1) {
             Origin.z -= 10;
         } 
         else if (way == 2) {
             Origin.x -= 10;
         } 
         else if (way == 3) {
             Origin.x += 10;
         }
         else if (way == 4) {
             Origin.y += 10;
         } 
         else {
             Origin.y -= 10;
         }
         return Origin;
     }
     void Start () {
 
     }
     void OnTriggerEnter(Collider Obj){
         if (Obj.tag == "MainCamera") {
             //            for(int i=0; i<BuildedHallways.count; i++){
             //                BuildedHallways[0].Invoke();
             //                BuildedHallways.RemoveAt(0);
             //            }
             //Debug.Log(correctWay);
             if(correctWay){//!!!!!!!!!!!!!!!!!!!!!!!here we need to add more than only 2
                 GetNewWay (null, 0, true, counTrue, 2);
             }
             else{
                 GetNewWay (null, 0, false, countFalse, 2);
             }
             BuildHallway (0, 1);
             for (byte b = 0; b < 6; b++) {
                 if (Way [b] != null) {
                     Way [b].BuildHallway (b, 2);
                 }
             }
         }
     }
     void Update () {
 
     }
 }
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
â–¼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

  • Sort: 
avatar image
1
Best Answer

Answer by logicandchaos · May 13, 2021 at 11:49 AM

Recursion causes StackOverflowException, looking up StackOverflowException this is the 1st result:

  StackOverflowException is thrown for execution stack overflow errors, typically in case of a very deep or unbounded recursion.

When you call a method it is loaded in memory, all the variables created are loaded in memory, then it calls itself and repeats the process as many times as needed, each time adding more memory on the stack until you run out. The method does not leave memory until it is finished running and it does not finish running until all recursive calls the finish running, so you can quickly run out of memory. Also calling it in OnTriggerEnter may have it being called multiple times. You should try to figure out an iterative approach, or a way to reduce garbage and increase efficiency.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
â–¼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Follow this Question

Answers Answers and Comments

708 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

I'm getting a StackOverFlowException 1 Answer

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

is there a way to catch global application exceptions? 3 Answers

C# Null Object Reference - Driving me mad! 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges