- 這是球類遊戲常用的力量棒代碼.. 是轉載自unity3dstudent.com
-
- //set the maximum width of the bar to be used for the maths function below
- var fullWidth : float = 256;
-
- //create a boolean flag we can use to stop and start the choosing of power
- var choosing : boolean = false;
-
- //create a private variable (not shown in inspector) to store the current set power
- private var thePower : float;
-
- //create a slot to assign my ball prefab to.
- var ball : Rigidbody;
-
- //create a slot to assign an empty game object as the point to spawn from
- var spawnPos : Transform;
-
- // create a number to multiply the force by as the value of up to 256 may not be enough to
- // effectively shoot a ball forward
- var shotForce : float = 5;
-
- function Update () {
-
- // detect if key is released and then call the Shoot function, passing the current
- // value of 'thePower' variable into it's 'power' argument
- if(Input.GetButtonUp("Jump")){
- Shoot(thePower);
- }
-
- if(!choosing){
- //create a power variable and set it to ping pong function
- //from current time to 1, and multiply that by a number (or variable holding a number)
- thePower = Mathf.PingPong(Time.time, 1) * fullWidth;
-
- //set the width of the GUI Texture equal to that power value
- guiTexture.pixelInset.width = thePower;
- }
- }
-
- // start the 'Shoot' custom function, establish a
- // float variable to be fed with a number when function is called
- function Shoot(power : float){
- //stop the power being changed whilst we shoot a ball by setting choosing boolean to true
- choosing = true;
-
- //create a ball, assign the newly created ball to a var called pFab
- var pFab : Rigidbody = Instantiate(ball, spawnPos.position, spawnPos.rotation);
-
- //find the forward direction of the object assigned to the spawnPos variable
- var fwd : Vector3 = spawnPos.forward;
- pFab.AddForce(fwd * power*shotForce);
-
- //pause before resuming the power bar motion
- yield WaitForSeconds(2);
-
- //reset choosing to restart the power bar motion
- choosing = false;
- }
复制代码
|