• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Problema script health bar per gioco 2D
#1
Ciao ragazzi, sono di nuovo io.Big Grin Creando il mio Cool Bellissimo Cool gioco 2d, sono arrivato al punto di dover fare una health bar(cioè una barra dell'energia). Mi sono andato a vedere qualche tutorial, ho composto lo script con un'attenzione che nemmeno vi immaginate e lo script come mi ringrazia? Huh Dicendo:
NullReferenceException: Object reference is not set to an instance of an object
HealthBar.OnCollisionEnter2D(UnityEngine.Collision2D col) (at Assets/HealthBar.cs:17). Avete capito che maleducato? Perchè fa così? Io che gli dedicato così tanta attenzione... Dodgy Ve lo posto qui sotto così magari ci capite un pò di più. Smile Se poi mi aiutate, sarò veramente felice! Big Grin Grazie in anticipo

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class HealthBar: MonoBehaviour
{

void OnCollisionEnter2D(Collision2D col)
{

if (col.collider.tag == "Enemy") {
Destroy (col.gameObject);
}

if (col.collider.tag == "Enemy") {
Image image = GetComponent<Image>();
image.fillAmount = .3f;
}

}
}
 
#2
Usi unity 5?
 
#3
Prova a sostituire col.collider.tag con col.gameObject.tag inoltre metti tutte le istruzioni in un solo if, creare 2 if identici è una cosa totalmente inutile.
 
#4
Oppure prova a fare col.GetComponent<Collider>().tag
 
#5
Allora, vi spiego la situazione. Io per fare la health bar ho creato un canvas, ho creato un image, cioè la nostra health bar, poi ho creato lo script che funziona in questo modo: quando il player tocca l'enemy, cioè il nemico, il nemico si distrugge MA la health bar diminuisce. Per provare a svuotare la health bar prima di metterla nel gioco, ho messo lo script nella bar (ovviamente tolto l'if e il col.collider.tag)e funzionò benissimo. L'image venne richiamata, la barra diminuì e vissero tutti felici e contenti. Ma quando metto lo script sul player e ci aggiungo il col.collider.tag(o il col.gameObject.tag, è uguale) e tutto il resto, mi dà l'errore! Non capisco perchè, forse non si può richiamare un component al di fuori del gameObject di dove si trova lo script? Comunque, io uso Unity 4, il 5 non lo trovo o forse è a pagamento. Ho provato a cambiare il col.collider.tag in col.gameObject.tag ma non cambia niente. Aspettate, mi sono dimenticato di dirlo prima: lo script non è che non funziona, ma quando tocco il nemico quello si distrugge e basta, e la barra non diminuisce. E' a quel punto che salta fuori l'errore di prima. Spero di essere stato un pò più chiaro. Grazie per le risposte
 
#6
Ma lol se lo avessi detto prima ahaha vabbè comunque tu hai fatto 2 if prova a mettere che la barra diminuisce nella prima if
 
#7
Master Gabriel scrivi se hai risolto...
 
#8
No, non ho risolto, stavo ringraziando per le risposte precedenti. Ho finalmente trovato il download di unity 5, solo che mi ha dato un'errore nell'installazione Angry e adesso unity 4 dice che tutti gli script non funzionano Dodgy . Quindi prima mi metto a posto unity 4 e poi vi saprò dire se ho risolto. Scusatemi ma è una lavorata pazzesca rifare tutti gli script, quindi ci vorrà un filino di tempo...
 
#9
Lol
 
#10
Lol?!? Io che devo rifarmi tutti gli script e tu mi dici Lol?!? Bah!(imitando i vecchietti d'oggigiorno) I giovani d'oggi! Ai miei tempi, ai miei tempi... Ehi ma aspetta io ho 14 anni! I miei tempi sono questi! Mi sa che ho sbagliato qualcosa... Comunque! Io ora sono bloccato con gli script e unity 5 non ne vuol sapere di scaricarsi! Vabbè se c'è qualche novità ve lo faccio sapere... Smile
 
#11
LoL
 
#12
Combo LoL x2
 
#13
ahahah Smile
 
#14
Ce l'ho fatta!!! Big Grin Ho riscritto tutti gli script! Big Grin Fraate-lli di unity, unity sè desto! Con l'elmo di GIMP sè cinto la testa! Ahahahahahaha! Ora posso andare avanti con la HealthBar! A proposito, ho provato a mettere che la barra diminuisce nel primo if e la storia è la stessa! Chiaritemi una cosa: quando io richiamo il componente image lo posso fare anche da un gameObject che non c'entra niente, come il player, oppure lo script che richiama deve essere nel gameObject da richiamare?
 
#15
Scusate di nuovo il doppio post, ma ho risolto il problema. Grazie a tutti per l'aiuto, per me si può chiudere.
 
  


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Movimento oggetto 2D nel canvas Aconeron 1 384 25-04-2017, 08:50 PM
Ultimo messaggio: Aconeron
  problema con script transform.lookat dexter95 5 1,122 18-05-2015, 11:06 PM
Ultimo messaggio: Chip
  Aiuto script sparo gioco 2D fedekikko 4 885 22-04-2015, 03:31 PM
Ultimo messaggio: Blackg96
  Aiuto problema script per attacco fedekikko 13 1,647 22-04-2015, 11:14 AM
Ultimo messaggio: Blackg96
  Camminata personaggio e animazione 2D fedekikko 5 1,071 21-04-2015, 02:59 PM
Ultimo messaggio: Blackg96
  Problema script vita player davidecreatoreapp 4 844 06-04-2015, 05:17 PM
Ultimo messaggio: Chip
  problema script ugavle 0 545 23-12-2014, 03:12 PM
Ultimo messaggio: ugavle
  Blocchi in movimento Platform 2D JessePinkman 0 592 05-12-2014, 09:48 AM
Ultimo messaggio: JessePinkman
  Script C# problema GUI.Button Requiem99 3 832 30-04-2014, 07:43 PM
Ultimo messaggio: adriqueru99
  problema c#script giggimito 4 915 07-01-2014, 12:42 AM
Ultimo messaggio: BlaClex46

Vai al forum:


Browsing: 1 Ospite(i)