Unity3d OnTriggerExit , aby fungovalo viac krát – Hry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Unity3d  OnTriggerExit , aby fungovalo viac krát – Hry – Fórum – Programujte.comUnity3d OnTriggerExit , aby fungovalo viac krát – Hry – Fórum – Programujte.com

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vytvořte si vlastní webové stránky. Snadno, rychle a levně přes Saywebpage.com
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

Vlákno bylo úspěšně vloženo.
Pokud sám přijdeš na řešení, nezapomeň ho sem přidat!
juraj1750
Návštěvník
16. 2. 2020   #1
-
0
-

Zravím

Neviete mi poradiť? Na scéne mám kocku akože miestnosť,ktorá sa volá obývačka a je k nej pridelený Tag:obyvacka. Skript je umiestnený na postavičke,ktorú ovládam a má takýto kód.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class obyvacka : MonoBehaviour {


	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
	}
  void OnTriggerEnter (Collider col)
 {
                
       if(col.tag==("obyvacka")){

              Debug.Log("Vosiel som do obyvacky");	

             }
    
  }  
    
   void OnTriggerStay (Collider col)
 {
                    
       if(col.tag==("obyvacka")){
    
               Debug.Log("Som v obyvacke");	

       }
    
  }
  void OnTriggerExit (Collider col)
 {
                  
       if(col.tag ==("obyvacka")){
   
       Debug.Log("Vysiel som z obyvacky");
       } 

  }     
}


Otázka znie.Ako mám upraviť kód, že keď postava viackrát bude vchádzať do miestnosti, aj vychádzať, aby mi tie funkcie fungovali stále. A nie len vtedy, keď scénu pustím prvýkrát?

ďakujem za rady

Nahlásit jako SPAM
IP: 88.212.36.–
gna
~ Anonymní uživatel
1162 příspěvků
16. 2. 2020   #2
-
0
-

Zkus vyhodit ty ify a v konzoli vypni "collapse".

Nahlásit jako SPAM
IP: 213.211.51.–
juraj1750
Návštěvník
16. 2. 2020   #3
-
0
-

#2 gna
lenže tie if si myslím, že tam chcem mať, že keď vojde napr. do druhej miestnosti napr kuchyňa?

Nahlásit jako SPAM
IP: 88.212.36.–
gna
~ Anonymní uživatel
1162 příspěvků
16. 2. 2020   #4
-
0
-

to je jen na vyzkoušení, abys viděl, co to opravdu dělá

Nahlásit jako SPAM
IP: 213.211.51.–
juraj1750
Návštěvník
17. 2. 2020   #5
-
0
-

#4 gna
Nejako sa mi to podarilo podľa príkladu upraviť. A ešte otázka, že keď vojdem do izby, ako sa dá zistiť či daný objekt sa v miestnosti nachádza alebo sa nenachádza napr. pomenujeme modravaza.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;

public class TriggerTest : MonoBehaviour {

      private bool guitex=false ;
      private bool guitexkuchyna=false;
      private bool guitexchodba=false;
      private bool guitexbyt=false;     
       
       
void FixedUpdate() 
    {
        Vector3 fwd = transform.TransformDirection(Vector3.forward);

        if (Physics.Raycast(transform.position, fwd, 10)) 
            print("There is something in front of the object!");
    }

	void Start () {

	}
	
	// Update is called once per frame
	void Update () {
       
	}

    
   // private Color m_oldColor=Color.red;
    
  void OnTriggerEnter(Collider coln)
 {
if(coln.tag == "obyvacka2" ){ 
guitex = true;  
 guitexkuchyna=false;   
Renderer render=GetComponent<Renderer>();

	
 // m_oldColor= render.material.color   ;
  render.material.color=Color.green;  

  
    }else if(coln.tag == "kuchyna"){
    Renderer render=GetComponent<Renderer>();

	
 // m_oldColor= render.material.color   ;
  render.material.color=Color.blue;  
    guitex = false;  
 guitexkuchyna=true;  
    }else if(coln.tag == "chodba"){
       guitex = false;  
 guitexkuchyna=false;  
     guitexchodba=true;
    }else if(coln.tag == "byt"){
             guitex = false;  
 guitexkuchyna=false;  
   guitexbyt=true; 
   
    } 
    }     
            
  void OnTriggerExit(Collider coln)
 {                     guitex = false;    
                       guitexkuchyna=false; 
                       guitexchodba=false;
                       guitexbyt=false;          
if(coln.tag == "obyvacka2"){

 Renderer render=GetComponent<Renderer>();
  render.material.color=Color.red;  
 }  
 }  
     
   private GUIStyle guiStyle = new GUIStyle(); //create a new variable
 
    void OnGUI() {

    if (guitex == true )
        {
 // GUI.contentColor = Color.yellow;  //zmena farba textu
 guiStyle.normal.textColor = Color.yellow;//farba hlasky
            guiStyle.fontSize = 20; //change the font size 
 GUI.Label(new Rect(255, 220, 190, 100), "vosiel som do obyvacky",guiStyle);
   
           }else if(guitexkuchyna==true){
     
   guiStyle.normal.textColor = Color.yellow;//farba hlasky
            guiStyle.fontSize = 20; //change the font size 
 GUI.Label(new Rect(255, 220, 190, 100), "vosiel som do kuchyne",guiStyle);         
               guitex =false;  
           }else if( guitexchodba==true){
                 guitex =false; 
     
        guiStyle.normal.textColor = Color.blue;//farba hlasky
            guiStyle.fontSize = 20; //change the font size 
 GUI.Label(new Rect(255, 220, 190, 100), "vosiel som do chodby",guiStyle);
           
           }else if( guitexbyt==true){
             guitex =false;guitexchodba=false;guitexbyt=true; 
 GUI.Label(new Rect(255, 220, 190, 100), "vosiel som do bytu",guiStyle);
           }else{
guiStyle.normal.textColor = Color.red;//farba hlasky
            guiStyle.fontSize = 20; //change the font size 
 GUI.Label(new Rect(255, 220, 190, 100), "", guiStyle);  

           }
    
       }
   
}
Nahlásit jako SPAM
IP: 88.212.36.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

Zkušenosti v Unity3D — založil Michal Krlín

Unity3D komunita — založil BloodRings

Hledáme programátora v C# - Unity3D — založil Stonehenge Games

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý