Creare Videogiochi - Game Developer
problema chiamata void in due script - Versione stampabile

+- Creare Videogiochi - Game Developer (https://www.making-videogames.net/giochi)
+-- Forum: Unity3D Italia (https://www.making-videogames.net/giochi/Forum-Unity3D-Italia)
+--- Forum: Richieste di Aiuto per Unity 3D (https://www.making-videogames.net/giochi/Forum-Richieste-di-Aiuto-per-Unity-3D)
+--- Discussione: problema chiamata void in due script (/thread-problema-chiamata-void-in-due-script)



problema chiamata void in due script - adriqueru99 - 02-07-2013

ciao ragazzi, vengo subito al dunque.
Sto facendo una demo per un rpg,io sto facendo tutti gli script da solo
e ho trovato un problema: cioe nello script "vita nemico" ho una int(ExpToGive),che sarebbe l'exp da dare al personaggio e un public void di nome "Die".
Quello che voglio fare è in un altro script, cioe se il void "Die" si attiva aggiungo alla curExp del personaggio l' ExpToGive del nemico, il problema è che unity mi dice "Cannot implicitly convert type `void' to `bool"
qualcuno sa come aiutarmi?
se sono stato poco chiaro con la spiegazione del problema ditemelo


RE: problema chiamata void in due script - Lorenz - 02-07-2013

se posti la perte di script interessata sicuramente fai un favore a tutti


RE: problema chiamata void in due script - adriqueru99 - 02-07-2013

ok in effetti è vero.
ecco questo è lo script vita nemico:

Codice PHP:
using UnityEngine;
using System.Collections;

public class 
Vitanemico MonoBehaviour {
    public 
int Maxhealth 0;
    public 
int curhealth 0;
    public 
int ExpToGive 0;

    
    
    
    
// Use this for initialization
    
void Start () {
        
    }
    
    
void Update () {
        if(
curhealth Maxhealth)
            
curhealth Maxhealth;

    }
    public 
void Die(){
        if(
curhealth 0){
        
GameObject.Destroy(gameObject);    
           }
            
        }


e questo è quello per il "livellamento":

Codice PHP:
using UnityEngine;
using System.Collections;

public class 
Livellamento MonoBehaviour {
    public 
int curLV 1;
    public 
int curEXP 0;
    public 
int EXP4LV 100;


    
// Use this for initialization
    
void Start () {
    
    }
    
    
// Update is called once per frame
    
void Update () {
    
    }
    
void OnGUI(){
    
GUI.Box(new Rect(650,170,150,20),"LV" curLV);
    
GUILayout.BeginArea(new Rect(650,30,150,20));
    if(
GUILayout.Button("+ EXP",GUILayout.Width(150)))
    {
        
EXPpiu();
    }
    
GUILayout.EndArea();
    }

    private 
void EXPpiu(){
        
Vitanemico vnm = (Vitanemico)GetComponent("Vitanemico");
        
curEXP += vnm.ExpToGive;
        if(
curEXP EXP4LV)
            
AugLV();
    }
    
    private 
void AugLV(){
        
EXP4LV *= 2;
        
vita_player v_p = (vita_player)GetComponent("vita_player");
        
v_p.maxhealth += 10;
        
v_p.curhealth v_p.maxhealth;
        
MP mp = (MP)GetComponent("MP");
        
mp.MaxMP += 5;
        
mp.CurMP mp.MaxMP;
        
curLV ++;
    }
    public 
void ProvaExpare(){
        
Vitanemico vnm = (Vitanemico)GetComponent("Vitanemico");
        if(
vnm.Die()){
            
EXPpiu();
        }
    }



p.s. scusate il disordine.


RE: problema chiamata void in due script - Skyline - 02-07-2013

Mi sono permesso di modificare il tuo post per aggiustarlo in modo tale da renderlo più facilmente "leggibile".


RE: problema chiamata void in due script - adriqueru99 - 02-07-2013

grazie infinite skyline!!!!


RE: problema chiamata void in due script - adriqueru99 - 04-07-2013

Grazie Cervian ora posso continuare il mio progetto,ti ringrazio molto