Wie erstelle ich ein weißes Rechteck in Unity 2D?

Hallo Stack Overflow Gemeinschaft.

Ich habe gerade begonnen, die Einheit zu mein port-video-Spiel für mehrere Plattformen. Ich hatte eine Frage über das erstellen von Objekten programmgesteuert in der Einheit. Das ist es, was mein Spiel aussieht derzeit:

Wie erstelle ich ein weißes Rechteck in Unity 2D?

Wenn der Benutzer tippt auf die Kamera-Taste, die Kamera-Bild-Skalen größer onTap und offTap. Ich will die gesamten Bildschirm blinkt weiß nur für eine kurze Sekunde aber ich habe keine Ahnung, wie dies zu tun. Hier ist der C# - code habe ich schon für diese Frage:

using UnityEngine;
using System.Collections;

public class question3 : MonoBehaviour {
    int cameraTaps = 0;
    //Use this for initialization
    void Start () {

    }

    IEnumerator CameraCoroutine() {
        Debug.Log("Before Waiting 3 seconds");
        yield return new WaitForSeconds(3);
        Debug.Log("After Waiting 3 Seconds");
        Application.LoadLevel("question4");
    }
    //Update is called once per frame
    void Update () {
        if (Input.GetMouseButtonDown(0)) 
        {
            RaycastHit hit;
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out hit))
            {
                if (hit.collider.gameObject.name == "camera")
                {
                    var camera = (hit.collider.gameObject);
                    camera.transform.localScale += new Vector3(.1f, .1f, 0);
                }
            }
        }
        if (Input.GetMouseButtonUp(0)) 
        {
            RaycastHit hit;
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out hit))
            {
                if (hit.collider.gameObject.name == "camera")
                {
                    var camera = (hit.collider.gameObject);
                    camera.transform.localScale -= new Vector3(.1f, .1f, 0);
                    cameraTaps = cameraTaps + 1;
                    print (cameraTaps);
                    if (cameraTaps == 5)
                    {
                        StartCoroutine(CameraCoroutine());

                    }
                    if (cameraTaps > 5)
                    {
                        Application.LoadLevel("fail");
                    }

                }
                if (hit.collider.gameObject.name == "turtle")
                {

                }
            }
        }
    }
}

Jede Hilfe wäre sehr geschätzt werden. Ich habe wirklich keine Ahnung, wie Sie entweder einfügen PNG ' s, oder erstellen Sie ein Rechteck, das overlay für eine kurze Sekunde.

Brauchen Sie input während dieser Zeit? Wenn nicht, können Sie erstellen ein Objekt mit einer OnGUI, dass zieht einen voll-Bildschirm weiß-rect, bis Sie es nicht brauchen, und dann verstecken oder zu zerstören, die gameObject. Wenn Sie brauchen, Interaktivität während der whiteout, können Sie erstellen ein Objekt mit vertex-shader, der zieht ein full-screen-quad und befestigen Sie es an eine Einheit von quad-Objekt.
Ich brauche keine Eingabe. Im Prinzip brauche ich den gesamten Bildschirm, um flash weiß für eine Sekunde. Den ganzen Bildschirm sollte blinken weiß auf GetMouseButtonUp jedes mal der hit.collider ist aktiviert. Könnten Sie mir helfen? Ich bin sehr neu in der Einheit und ich verstehe nicht, wie ich könnte schreiben, code 😀
Alles, was Sie wirklich tun müssen, ist erstellen Sie eine Einheit von quad und befestigen Sie es an Ihrer Kamera, so dass es macht vor allem anderen. Geben Sie eine einfache shader wie Unbeleuchtet und positionieren Sie es so, es deckt die Kamera-viewport komplett (Sie können die Eltern es zu, die Kamera folgt die Kamera die ganze Zeit). Dann einfach aktivieren/deaktivieren von Skript
Konnte Sie nach ein paar code um die Frage zu beantworten? Plz 😀

InformationsquelleAutor Jordan Schuetz | 2013-12-18

Schreibe einen Kommentar