Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - problema con la gestione delle collisioni in C# UNITY
Forum - Altri Linguaggi - problema con la gestione delle collisioni in C# UNITY

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Questo topic è stato chiuso dal moderatore

da poco che ho iniziato a usare Unity in modo didattico per un fps spaziale 2D: ho fatto il loop della background, imparato la funzione instantiate... ma ho un problema con la gestione in script delle collisioni (in rete la documentazione è frammentata e non riesco a capire come usare la funzione)
alla fine ho creato questo algoritmo ma quando cerco di compilare il compilatore mi da un errore alla riga: if(health=0)
"Cannot implicitly convert type 'int' to 'bool' "
mi chiedo cosa centra il tipo bool...
Codice sorgente - presumibilmente C#

  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class collision_r : MonoBehaviour {
  5.         public GameObject b;  //proiettile
  6.         public int health;    //salute del bersaglio
  7.         void OnCollisionEnter(Collision coll)
  8.         {
  9.                 health -=1;
  10.                 Destroy(b);
  11.                 if(health=0)
  12.                         Destroy(gameObject);
  13.         }
  14.        
  15.         // Use this for initialization
  16.         void Start () {
  17.                 health = 3;
  18.                
  19.                
  20.         }
  21.        
  22.         // Update is called once per frame
  23.         void Update () {
  24.                
  25.         }
  26. }



PM
Avatar
marco (Member)
Newbie


Messaggi: 6
Iscritto: 19/02/2015

Segnala al moderatore
Postato alle 12:56
Sabato, 05/09/2015
L'operatore di confronto è ==, non =, ergo l'errore.

PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:12
Sabato, 05/09/2015
Abituati a scrivere prima la costante così non avrai questi problemi

if(0==health)


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:46
Sabato, 05/09/2015
grazie ho risolto, anche se ora all'esecuzione del gioco sia il bersaglio che il proiettile entrano in collisione ma non si distruggono :noway:
---------
EDIT: potete chiudere il post ho risolto il problema da solo! grazie di nuovo per l'aiuto!:hail:

Ultima modifica effettuata da il 05/09/2015 alle 14:29
PM