【发布时间】:2015-12-31 22:56:58
【问题描述】:
所以我正在尝试创建自己的方法(如更新、启动等) 基本上,可以检测输入但使用 bool 方法的东西。更像是“OnKeyDown”。
我没有收到任何错误,但什么也没发生,这是我的课程:
using UnityEngine;
using System.Collections;
public class BeastScript : MonoBehaviour
{
void Update()
{
#region INPUT
//KEYS
if (Input.anyKeyDown)
{
OnKeyDown(Input.inputString);
}
if (Input.anyKey)
{
OnKeyHold(Input.inputString);
}
//MOUSE
if (Input.GetMouseButtonDown(0))
{
OnMouseClick(0);
}
if (Input.GetMouseButtonDown(1))
{
OnMouseClick(1);
}
if (Input.GetMouseButtonDown(2))
{
OnMouseClick(2);
}
if (Input.GetMouseButton(0))
{
OnMouseClickHold(0);
}
if (Input.GetMouseButton(1))
{
OnMouseClickHold(1);
}
if (Input.GetMouseButton(2))
{
OnMouseClickHold(2);
}
if (Input.GetMouseButtonUp(0))
{
OnMouseRelease(0);
}
if (Input.GetMouseButtonUp(1))
{
OnMouseRelease(1);
}
if (Input.GetMouseButtonUp(2))
{
OnMouseRelease(2);
}
#endregion INPUT
}
public virtual void OnKeyDown(string key) { }
public virtual void OnKeyHold(string key) { }
public virtual void OnMouseClick(int button) { }
public virtual void OnMouseClickHold(int button) { }
public virtual void OnMouseRelease(int button) { }
}
这是派生的
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Beast;
using Beast.BUI;
using Beast.Extensions;
using System;
using UnityEngine.Events;
using Beast.Web;
public class Tester : BeastScript {
void Start()
{
}
void OnGUI ()
{
}
void Update ()
{
}
public override void OnMouseClick(int button)
{
base.OnMouseClick(button);
if (button == 0)
{
print("Works");
}
}
}
【问题讨论】:
-
如果任何答案对您有用,如果您接受该答案,对其他人会有所帮助。如果没有,请随时评论给出的答案,或更新您的问题。
标签: c# unity3d overriding virtual