Unity3D 力量棒代碼
[*]這是球類遊戲常用的力量棒代碼.. 是轉載自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;
}
很不错 楼主是超人 真心顶 不错不错 LZ真是人才 很不错 楼主是超人 好帖就是要顶 难得一见的好帖