Futebol Bar Power Kick
Podem criar um elemento de jogabilidade em torno de uma barra de energia que varia até que você pressiona uma tecla, em seguida, usa a sua seleção para atear fogo a um objeto, por exemplo.
Para fazer isso, você precisará de um objeto GUI textura, de por exemplo 256 x 20 pixels. Faça isso no photoshop e usar um gradiente para preenchê-lo, salve em seus ativos. Selecione a textura na janela de Projeto na Unidade e ir para GameObject> Create Other > GUI textura.
Atribuir o script abaixo para o objeto recém-criado e utilizar a sua transformação de componentes para definir a posição, especificando os valores X e Y. Por exemplo a parte inferior esquerda pode ser algo como - X: 0,25, Y: 0,15.
//Script criado por Will Goldstone do site 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;
}
Share via Social
//Script criado por Will Goldstone do site Unity3dstudent.com
Este script pode ser usado tambem como força de chute ou passe de jogador de futebol ou de volei.
Bons estudos.
0 comentários: