1 de abr. de 2011

GamerArt - Como fazer barra de força

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.
Postagem Anterior
Proxima Postagens

Postado Por:

0 comentários: