概述
首先是鼠标双击事件,这个只能用OnGUI的方法了,代码如下:
void OnGUI()
{
Event e = Event.current;
if (e.isMouse && (e.clickCount == 2))
{
Debug.Log("用户双击了鼠标");
}
}
接下来是点击鼠标的左右中键的代码。
注意是点击中键而不是滚动
如下:
void Update()
{
if (Input.GetButton("Fire1"))
{ //LeftMouse是在inputManager中设置的,左键值为mouse 0
//
PlayerMove();
Debug.Log("用户click鼠标左键");
}
if (Input.GetButton("Fire3"))
{ //LeftMouse是在inputManager中设置的,左键值为mouse 0
//
PlayerMove();
Debug.Log("用户click鼠标中键");
}
if (Input.GetButton("Fire2"))
{ //LeftMouse是在inputManager中设置的,左键值为mouse 0
//
PlayerMove();
Debug.Log("用户click鼠标右键");
}
}
上述代码里的Fire1等是unity默认的。
这个默认设置不止是针对鼠标的,同时还说键盘,例如左shift ,左ctrl和alt等。这个可以打开设置自己看到。
位置的路径在unity菜单的Edit--->project setting -->input里。
如下图:
下面说鼠标滚轮的交互。
直接举个例子来说,例如场景里有个cube 。
要实现:滚轮滚动相机的的镜头来拉近和拉远。
把以下脚本绑定到cube上,然后把相机指定上去就OK。滚动的代码就在Update里。
如下:
using UnityEngine;
using System.Collections;
public class followtarget : MonoBehaviour
{
public GameObject Thirdcamera;
float distance = 1;
void Update()
{
distance -= Input.GetAxis("Mouse ScrollWheel");
Thirdcamera.transform.position = this.transform.position - Vector3.forward * distance;
}
}
这个官方似乎没有给出方法,所以就自创了。
我规定的是按键盘A键两次按键间隔不超过0.5秒。下面是代码:
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class followtarget : MonoBehaviour
{
private float timer = 0;
public enum Clickcount
{
firsttime,
secondtime,
zerotime
}
Clickcount First = Clickcount.zerotime;
/// <summary>
/// 键盘双击功能,两次按键间隔时间必须小于0.5秒
/// </summary>
void Update()
{
timer -= Time.deltaTime;
if (Input.GetKeyDown(KeyCode.A)&& First == Clickcount.zerotime)
{
timer = 0.5f;
Debug.Log("第一次按下");
First = Clickcount.firsttime;
}
if (Input.GetKeyUp(KeyCode.A) && First == Clickcount.firsttime)
{
Debug.Log("第一次抬起");
First = Clickcount.secondtime;
}
if (timer < 0)
{
First = Clickcount.zerotime;
}
if (Input.GetKey(KeyCode.A) && First == Clickcount.secondtime&&timer>0f)
{
Debug.Log("只有双击出现");
First = Clickcount.zerotime;
}
}
}
最后
以上就是高贵太阳为你收集整理的unity一些键盘鼠标特殊触发事件总结的全部内容,希望文章能够帮你解决unity一些键盘鼠标特殊触发事件总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复