Hello Stack Overflow сообщество.Как создать белый прямоугольник в Unity 2D?
Я только начал использовать Unity для переноса своей видеоигры на несколько платформ. У меня возник вопрос о создании объектов программно в Unity. Это то, что это моя игра выглядит в настоящее время:
Когда пользователь нажимает на кнопку камеры, изображение с камеры весы больше OnTap и offTap. Я хочу, чтобы весь экран был белым только на короткую секунду, но я не знаю, как это сделать. Вот код C#, который у меня уже есть по этому вопросу:
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")
{
}
}
}
}
}
Любая помощь будет очень признательна. Я действительно не знаю, как вставлять PNG или создавать прямоугольник, который накладывается на короткую секунду.
Вам нужно ввести данные за это время? Если нет, вы можете создать объект с помощью OnGUI, который рисует белую прямоугольную полосу полного экрана, пока вам это не понадобится, а затем скройте или уничтожьте объект gameObject. Если вам нужна интерактивность во время белого, вы можете создать объект с вершинным шейдером, который рисует полноэкранный квадрат и присоединяет его к четвертому объекту Unity. – theodox
Мне не нужен ввод. В принципе, мне нужен весь экран, чтобы на мгновение вспыхнуть белым. Весь экран должен быть белым на GetMouseButtonUp каждый раз, когда hit.collider активирован. Не могли бы вы помочь мне? Я очень новичок в единстве, и я не понимаю, как я мог написать этот код: D –
Все, что вам действительно нужно сделать, это создать квадрат единицы и прикрепить его к своей камере, чтобы он отображался перед всем остальным. Дайте ему простой шейдер, такой как Unlit, и расположите его так, чтобы он полностью закрывал видоискатель камеры (вы можете установить его на камеру, чтобы он постоянно следил за камерой). Затем просто включите/отключите его из сценария – theodox