【发布时间】:2013-12-18 17:29:18
【问题描述】:
你好 Stack Overflow 社区。p>
我刚刚开始使用 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 创建一个对象,该对象绘制一个全屏白色矩形,直到您不需要它,然后隐藏或销毁游戏对象。如果您需要在白化期间进行交互,您可以创建一个带有顶点着色器的对象,该对象绘制一个全屏四边形并将其附加到 Unity 四边形对象。
-
我不需要任何输入。基本上我需要整个屏幕闪烁一秒钟。每次激活 hit.collider 时,GetMouseButtonUp 上的整个屏幕都应闪烁白色。你可以帮帮我吗?我对统一很陌生,我不明白如何编写该代码:D
-
您真正需要做的就是创建一个统一四边形并将其附加到您的相机上,以便它呈现在其他所有东西的前面。给它一个简单的着色器,例如 Unlit 并定位它,使其完全覆盖相机视口(您可以将它作为相机的父对象,使其始终跟随相机)。然后只需从脚本中启用/禁用它
-
你能发布一些代码来回答这个问题吗?请:D