0
當按下"Fire2"
並顯示GUI紋理時,此腳本控制攝像機視場。但是,一旦用戶按下按鈕一次,紋理就會顯示並且不會消失,直到再次按下按鈕 - 我希望它只在按下按鈕時才顯示。該腳本附加到預製件,該預製件是玩家預製件的子對象。我試圖只使用GetButton
,但看到OnGUI()
被稱爲每幀,以及Update()
功能,它只是使紋理閃爍。僅在按下按鈕時才顯示GUI紋理?
using UnityEngine;
using System.Collections;
public class awpScopeIn : MonoBehaviour {
public Texture scopeGUI;
private bool _isScoped = false;
public Color color = Color.black;
private Camera cam;
public GameObject awp_graphics;
void Start()
{
cam = GetComponentInParent(typeof(Camera)) as Camera;
cam.clearFlags = CameraClearFlags.SolidColor;
cam.fieldOfView = 70f;
}
void OnGUI()
{
float width = 600;
float height = 600;
if (_isScoped) {
GUI.DrawTexture (new Rect ((Screen.width/2) - (width/2), (Screen.height/2) - (height/2), width, height), scopeGUI);
}
}
void Update()
{
if(Input.GetButtonDown("Fire2"))
{
_isScoped = !_isScoped;
cam.backgroundColor = color;
cam.fieldOfView = 45f;
awp_graphics.gameObject.SetActive(false);
}else if(Input.GetButtonUp("Fire2"))
{
cam.fieldOfView = 70f;
awp_graphics.gameObject.SetActive(true);
}
}
}
歡呼聲,雖然我意識到這張貼後不久,哈哈 –