2016-10-18 2 views
0

Im Versuch, es so eine Tür in der Einheit zu machen, öffnet sich, wenn Sie 20 Münzen gesammelt haben. und dann öffnet es sich, wenn Sie es berühren. aber aus irgendeinem Grund. Wenn ich es mit 0, 1, 2 usw. Münzen berühre, öffnet es sich immer noch. Wie verhindere ich das?Offene Tür, wenn mehr als 20 Münzen

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


public class Player_Controller : MonoBehaviour { 
public float speed; 
public Text countText; 
private Rigidbody rb; 
private int count; 
public float volume; 
public Text eye; 



AudioSource audio; 
void Start() 
{ 

    audio = GetComponent<AudioSource>(); 
    rb = GetComponent<Rigidbody>(); 
    count = 0; 
    SetCountText(); 
    eye.text = ""; 
} 


void FixedUpdate() 
{ 

    float moveHorizonal = Input.GetAxis("Horizontal"); 
    float moveVertical = Input.GetAxis("Vertical"); 

    Vector3 movement = new Vector3(moveHorizonal, 0.0f, moveVertical); 

    rb.AddForce(movement * speed); 

} 
void OnTriggerEnter(Collider other) 
{ 
    if (other.gameObject.CompareTag("pickup")) 
    { 
     audio.Play(); //Play it 

     other.gameObject.SetActive(false); 
     count = count + 1; 
     SetCountText(); 
    } 
    else if (other.gameObject.CompareTag("pickup2")) 
    { 
     audio.Play(); //Play it 

     other.gameObject.SetActive(false); 
     count = count + 10; 
     SetCountText(); 
    } 
    else if (other.gameObject.CompareTag("eye")) 
    { 
     audio.Play(); //Play it 

     other.gameObject.SetActive(false); 
     count = count + 9999999; 
     SetCountText(); 
    } 
    else if (other.gameObject.CompareTag("door") && count <= 20) 
    { 
     other.gameObject.SetActive(false); 
     count = 0; 
    } 


} 

void SetCountText() 
{ 
    countText.text = "Count: " + count.ToString(); 
    if (count >= 9001) 
    { 
     eye.text = "You hit the bull's eye! ALL THE POINTS!"; 
    } 
} 
} 

Update: Ich habe das falsche Zeichen hier verwendet. die < soll> sein. aber das Problem ist jetzt, dass, da es ein Auslöser ist, Sie durch rollen. Wie kann ich es solide machen, aber immer noch ein Auslöser?

Antwort

0
else if (other.gameObject.CompareTag("door") && count <= 20) 

Sie sagen, wenn die Anzahl weniger als OR 20 ist, dann öffnen Sie die Tür.

Ändern Sie es an:

else if (other.gameObject.CompareTag("door") && count >= 20) 

Dies sagt dann mindestens 20 oder mehr

Diese tutorial auf die Betreiber etwas Licht können Sie verwenden können :)

+0

Ja, dachte ich, ich habe so etwas falsch. aber das Ding ist jetzt. Dass ich durch die Tür rollen kann, egal ob ich die 20 Punkte habe oder nicht. Ich weiß, das ist, weil es ein Auslöser ist. Gibt es also einen Weg, um einen Auslöser noch Kollisionen zu machen? –

+0

@MichaDeHaan Ich fürchte, ich bin nicht in der Lage, diese Frage zu beantworten. Ich würde empfehlen, hier zu suchen/sie als separate Frage zu stellen; Ich habe gerade ein C# -Problem gesehen: P – Clint

+1

Eigentlich habe ich es herausgefunden: Ich musste nur ein Kind an die solide Tür anhängen. Seit dem Entfernen des Elternteils werden auch alle Childs entfernt. trotzdem danke! –

Verwandte Themen