usingUnityEngine;usingSystem.Collections;publicclassMainLoop:MonoBehaviour{publicGameObject[]stones=newGameObject[3];publicfloattorque=5.0f;publicfloatminAntiGravity=20.0f,maxAntiGravity=40.0f;publicfloatminLateralForce=-15.0f,maxLateralForce=15.0f;publicfloatminTimeBetweenStones=1f,maxTimeBetweenStones=3f;publicfloatminX=-30.0f,maxX=30.0f;publicfloatminZ=-5.0f,maxZ=20.0f;privateboolenableStones=true;privateRigidbodyrigidbody;// Use this for initializationvoidStart(){StartCoroutine(ThrowStones());}// Update is called once per framevoidUpdate(){}IEnumeratorThrowStones(){// Initial delayyieldreturnnewWaitForSeconds(2.0f);while(enableStones){GameObjectstone=(GameObject)Instantiate(stones[Random.Range(0,stones.Length)]);stone.transform.position=newVector3(Random.Range(minX,maxX),-30.0f,Random.Range(minZ,maxZ));stone.transform.rotation=Random.rotation;rigidbody=stone.GetComponent<Rigidbody>();rigidbody.AddTorque(Vector3.up*torque,ForceMode.Impulse);rigidbody.AddTorque(Vector3.right*torque,ForceMode.Impulse);rigidbody.AddTorque(Vector3.forward*torque,ForceMode.Impulse);rigidbody.AddForce(Vector3.up*Random.Range(minAntiGravity,maxAntiGravity),ForceMode.Impulse);rigidbody.AddForce(Vector3.right*Random.Range(minLateralForce,maxLateralForce),ForceMode.Impulse);;yieldreturnnewWaitForSeconds(Random.Range(minTimeBetweenStones,maxTimeBetweenStones));}}}
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.