faek
@#*§°
Messaggi: 1,284
Registrato: Nov 2009
Offline
|
#1
Impostare tempo di reload dell'objBullet
salve a tutti 
Ho un enorme problema da risolvere: alla pressione del tasto fire1, il mio character crea un objBullet, che esegue questo script:
Codice:
using UnityEngine;
using System.Collections;
public class BulletScript : MonoBehaviour {
private float moveSpeed = 30f; // how fast the bullet moves
private float timeSpentAlive; // how long the bullet has stayed alive for
private GameObject objPlayer;
private VariableScript ptrScriptVariable;
// Use this for initialization
void Start () {
objPlayer = (GameObject) GameObject.FindWithTag ("Player");
ptrScriptVariable = (VariableScript) objPlayer.GetComponent( typeof(VariableScript) );
}
// Update is called once per frame
void Update () {
timeSpentAlive += Time.deltaTime;
if (timeSpentAlive > 1) // if we have been travelling for more than one second remove the bullet
{
removeMe();
}
// move the bullet
transform.Translate(0, 0, moveSpeed * Time.deltaTime);
transform.position = new Vector3(transform.position.x,0,transform.position.z); // because the bullet has a rigid body we don't want it moving off it's Y axis
}
void removeMe ()
{
Instantiate(ptrScriptVariable.parBulletHit, transform.position, Quaternion.identity );
Destroy(gameObject);
}
void OnCollisionEnter(Collision Other)
{
if ( Other.gameObject.GetComponent( typeof(AIscript) ) != null && Other.gameObject != objPlayer ) // if we have hit a character and it is not the player
{
AIscript ptrScriptAI = (AIscript) Other.gameObject.GetComponent( typeof(AIscript) );
ptrScriptAI.health -= 10;
Instantiate(ptrScriptVariable.parAlienHit, transform.position, Quaternion.identity );
removeMe();
}
removeMe(); // remove the bullet if it has hit something else apart from an enemy character
}
}
Vorrei dire a questo script che ogni 30 proiettili sparati, l'arma si debba ricaricare in automatico, oppure premendo il tasto "R".
Grazie a tutti.
Ps.Se mi volete dare una mano con il mio progetto siete i benvenuti
Fabio "faek" Paccosi
Big Brain Games
Follow me on Twitter
|
|
| 19-07-2010 8:51 |
|
johnnyfreak
Indieveloper
Messaggi: 1,482
Registrato: Sep 2009
Offline
|
#2
RE: Impostare tempo di reload dell'objBullet
Io ho fatto una cosa del genere per il mio progetto.
Non so come funziona in unity però concettualmente il tempo di reload è quello dell'arma non del proiettile (sempre che per te queste due cose non coincidano).
Io ho messo un tempo di "reload" e un tempo di "reshoot" se a questi aggiungi un intero che è il valore massimo dei proiettili, il gioco è fatto.
Se non ti è chiaro o vuoi maggiori dettagli, scrivi pure.
Simone Zenzaro
[Twitter|Linkedin|Web]
(Questo messaggio è stato modificato l'ultima volta il: 19-07-2010 19:57 da johnnyfreak.)
|
|
| 19-07-2010 19:56 |
|
faek
@#*§°
Messaggi: 1,284
Registrato: Nov 2009
Offline
|
#3
RE: Impostare tempo di reload dell'objBullet
(19-07-2010 19:56)johnnyfreak ha scritto: Io ho fatto una cosa del genere per il mio progetto.
Non so come funziona in unity però concettualmente il tempo di reload è quello dell'arma non del proiettile (sempre che per te queste due cose non coincidano).
Io ho messo un tempo di "reload" e un tempo di "reshoot" se a questi aggiungi un intero che è il valore massimo dei proiettili, il gioco è fatto.
Se non ti è chiaro o vuoi maggiori dettagli, scrivi pure.
per adesso va bene, grazie!!!
Fabio "faek" Paccosi
Big Brain Games
Follow me on Twitter
|
|
| 19-07-2010 20:18 |
|
Tano
Ninja Scientist
Messaggi: 1,408
Registrato: Nov 2008
Offline
|
#4
RE: Impostare tempo di reload dell'objBullet
Scusami ma non è il proiettile che deve sapere se è il trentesimo. Devi avere un "qualcosa" esterno che controlla tutto e ti permette di sparare o meno. Una sorta di WeaponController. Ovvero una classe che si occupa di tener traccia di quanti proiettili ti rimangono e che arma stai usando..
Qualcuno ha parlato di Strategy Pattern?  (E' utilissimo in questo caso!)
"..Credevamo di aver successo un giorno, al teatro delle commedie, con due soli spettatori.." Takeshi Kitano.
Gaetano Lenoci
Studio Leaves
Coward Knight
|
|
| 20-07-2010 8:31 |
|
Tano
Ninja Scientist
Messaggi: 1,408
Registrato: Nov 2008
Offline
|
#6
RE: Impostare tempo di reload dell'objBullet
Non scrivi cose stupide.. L'importante è che tu raggiunga i tuoi obiettivi! Poi chiedi pure, ti risponderò nelle mie possibilità visto che Unity lo conosco abbastanza bene.
"..Credevamo di aver successo un giorno, al teatro delle commedie, con due soli spettatori.." Takeshi Kitano.
Gaetano Lenoci
Studio Leaves
Coward Knight
|
|
| 20-07-2010 11:28 |
|
faek
@#*§°
Messaggi: 1,284
Registrato: Nov 2009
Offline
|
#7
RE: Impostare tempo di reload dell'objBullet
(20-07-2010 11:28)Tano ha scritto: Non scrivi cose stupide.. L'importante è che tu raggiunga i tuoi obiettivi! Poi chiedi pure, ti risponderò nelle mie possibilità visto che Unity lo conosco abbastanza bene.
grazie!!
ecco una prima domanda XD
Come mai, una volta creato il livello, il mio personaggio scivola verso l'infinito e oltre nonostante abbia attivato il rigid body sia del personaggio che del livello (al livello ho levato la gravità)?
Fabio "faek" Paccosi
Big Brain Games
Follow me on Twitter
|
|
| 20-07-2010 11:33 |
|
faek
@#*§°
Messaggi: 1,284
Registrato: Nov 2009
Offline
|
|
| 20-07-2010 12:02 |
|
Corralx
Graph Lover
Messaggi: 810
Registrato: Jul 2010
Offline
|
#10
RE: Impostare tempo di reload dell'objBullet
Probabilmente perchè in Unity, RigidBody e Collider sono 2 entità diverse.
Il rigidbody ti garantisce che sia gestito dal motore fisico, ma senza collider non ha interazioni con gli altri oggetti.
Aggiungi i Collider e non dovrebbe più passare attraverso i modelli.
Matteo "Corralx" Bertello
|
|
| 20-07-2010 12:32 |
|
faek
@#*§°
Messaggi: 1,284
Registrato: Nov 2009
Offline
|
#11
RE: Impostare tempo di reload dell'objBullet
(20-07-2010 12:32)Corralx ha scritto: Probabilmente perchè in Unity, RigidBody e Collider sono 2 entità diverse.
Il rigidbody ti garantisce che sia gestito dal motore fisico, ma senza collider non ha interazioni con gli altri oggetti.
Aggiungi i Collider e non dovrebbe più passare attraverso i modelli.
ok, grazie
Fabio "faek" Paccosi
Big Brain Games
Follow me on Twitter
|
|
| 20-07-2010 18:02 |
|