Quantcast
Channel: Questions in topic: "crash"
Viewing all articles
Browse latest Browse all 2383

Unity crashes after specific coroutine.

$
0
0
I'm working on a project that involves a truck moving back and forth every now and then. The back and forth movements are managed in a couple of coroutines. Every time I play the game, **right after the second coroutine (backwards movement) finishes**, Unity crashes. I've tried making sure to stop all coroutines after each coroutine in case they're taking up too much CPU. Here is the coroutines involved (the backwards movement is the one that crashes): IEnumerator MoveTruckForward(float time) { float elapsedTime = 0; //-starting and ending positions for truck Vector3 startingPos = new Vector3(0, 0, 0); Vector3 endingPos = new Vector3 (4, 0, 0); //-starting rotations for wheels Vector3 back_angles = wheel_back.transform.rotation.eulerAngles; Vector3 front_angles = wheel_front.transform.rotation.eulerAngles; while (elapsedTime < 4) { //-rotates back wheel while truck is moving back_angles.z = Mathf.Lerp(back_angles.z, -1440, (elapsedTime/time) / 30); wheel_back.transform.eulerAngles = back_angles; //-rotates front wheel while truck is moving front_angles.z = Mathf.Lerp(front_angles.z, -1440, (elapsedTime/time) / 30); wheel_front.transform.eulerAngles = front_angles; //-moves truck to ending pos truck.transform.position = Vector3.Lerp(startingPos, endingPos, (elapsedTime / time)); elapsedTime += Time.deltaTime; yield return null; } } IEnumerator MoveTruckBackward(float time) { float elapsedTime = 0; //-starting and ending positions for truck Vector3 startingPos = new Vector3 (4, 0, 0); Vector3 endingPos = new Vector3 (0, 0, 0); //-starting rotations for wheels Vector3 back_angles = wheel_back.transform.rotation.eulerAngles; Vector3 front_angles = wheel_front.transform.rotation.eulerAngles; while (elapsedTime < 4) { //-rotates back wheel while truck is moving back_angles.z = Mathf.Lerp(back_angles.z, 1440, (elapsedTime/time) / 40); wheel_back.transform.eulerAngles = back_angles; //-rotates front wheel while truck is moving front_angles.z = Mathf.Lerp(front_angles.z, 1440, (elapsedTime/time) / 40); wheel_front.transform.eulerAngles = front_angles; //-moves truck to ending pos truck.transform.position = Vector3.Lerp(startingPos, endingPos, (elapsedTime / time)); elapsedTime += Time.deltaTime; yield return null; } } Again, it only happens **after** the first instance of the truck moving back, regardless of how many coroutines have happened beforehand. Any help would be greatly appreciated.

Viewing all articles
Browse latest Browse all 2383

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>