• 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 /
avatar image
0
Question by francy51 · Feb 14, 2015 at 04:38 PM · crashes

Script makes my unity Crash

I am new to unity and don't know if this script is good, it's bits and bobs of other scripts it give me no errors though but every time I press play my unity crashes. I am hoping someone could tell me why that is or hint to a reason why it might be and btw I know this code is terrble but I am just a beginner.

 using UnityEngine;
 using System.Collections;
 
 public class terrainGenerator : MonoBehaviour {
 
     //Raycast
     bool foundhit = false;
     RaycastHit hit = new RaycastHit();
     public Transform cube;
     public float raycastDist = 10;
     public string tagCheck = "Edge";
     public bool checkAllTags = false;
 
     //block placement
     public bool running = false;
     public float speed = 4;
     Ray ray;
     
     
     //spawning
     public GameObject[] obj;
     public float spawnMin = 1;
     public float spawnMax = 2;
     
     // Use this for initialization
     void Awake ()
     {
         spawn();
         running = true;
         while (running == true)
            
 
            if(Physics.Raycast(transform.position, transform.forward, raycastDist))
            {
                foundhit = true;
            }
            if(foundhit == true)
            {
                if(Physics.Raycast(transform.position, transform.forward, raycastDist))
                {
                    
                }
            }
        }
 
 
     void spawn()
     {
         Instantiate(obj[Random.Range(0, obj.GetLength(0))], transform.position, Quaternion.identity);
         Invoke("spawn", Random.Range(spawnMin, spawnMax));
     } 
 }

Comment
Add comment · Show 1
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
avatar image meat5000 ♦ · Feb 15, 2015 at 10:28 AM 0
Share

Pick the best one and click the tick.

2 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by Mmmpies · Feb 14, 2015 at 04:55 PM

Pretty sure you shouldn't start a while loop in Awake, even more sure there appears to be no way that while loop can exit.

You don't need a while loop anyway, move the following lines to Update:

     void Update () {
     
         if(Physics.Raycast(transform.position, transform.forward, raycastDist))
         {
             foundhit = true;
             Debug.Log ("FoundHit = " + foundhit);
             foundhit = false; // just to reset so we only get a debug if hit in that frame
         }
     }

Be very, very, very careful with while loops, if possible avoid at all costs.

Comment
Add comment · Show 1 · 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
avatar image francy51 · Feb 15, 2015 at 10:26 AM 0
Share

thanks your saviors

avatar image
1

Answer by tanoshimi · Feb 14, 2015 at 04:45 PM

 running = true;
 while (running == true)

That thar is what's called an infinite loop... running is always true, so the game execution will never continue.

Comment
Add comment · Show 1 · 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
avatar image francy51 · Feb 15, 2015 at 10:26 AM 0
Share

thanks your saviors

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Increase speed of footsteps when sprinting? 2 Answers

Unity crashing constantly 2 Answers

64 bit build causes the crash for windows 8 0 Answers

Native extension for WindowsStandalone target not found 0 Answers

(GameName) has stopped and Keeps stopping 0 Answers


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