Unity3D 学习笔记(三) 输入与输出

本文介绍了游戏开发中如何使用输入系统管理类来设置虚拟轴,实现平滑且可配置的输入效果,包括使用虚拟轴进行物体驾驶效果的实现,以及如何通过虚拟轴在脚本中进行平移和旋转操作。同时详细解释了如何在游戏杆中定义虚拟轴并在脚本中使用,通过虚拟轴获取按钮和按键的按下、释放状态,以及按键的保持和释放事件。
输入类  --》 输入系统的接口

虚拟轴 定义轴向概念
使用成堆按钮来设置轴的正向或负向的数值,形象对应游戏操纵杆中摇杆或按键在某个方向重的正负最大形成
Edit ->Project Settings -> Input 在属性编辑器中显示输入管理类
可以使用某些定义好的虚拟轴

使用虚拟轴可以使用平滑且可配置的输入效果
在脚本中直接引用虚拟轴的名称

在游戏杆中定义虚拟轴,使其在脚本中使用



e.g. 使物体有驾驶效果
#pragma strict
var speed : float = 100 ;  // 前进速度
var rotationSpeed : float = 100.0;  //旋转速度

function Update ( ) {
var translation : float = input.GetAxis("Vertical")* speed;
var rotation : float = input.GetAxis("Horizontal") * rotationSpeed;

translation *= Time.deltaTime;
rotation *= Time.deltaTime;
//赋值到移动的物体
transform.Translate(0,0,translation);
transform.Rotate(0,rotation, 0);

GetButton 
使用方式:
Return true while the virtual button identified by buttonName is held down. --》function GetButton(buttonName : String) : boolean
//使用虚拟轴定义
GetKey : (常按事件)
使用方式:
①Return true while user holds the key identified by name.Think auto fire. --》Input.GetKey("up")
②KeyCode  --》Input.GetKey(KeyCode.UpArrow);
GetKeyDown : (按下那刻的事件)
使用left/right/up/down等键代替←,→,↑,↓等键,具体如下:





function Update ( ) {
if(Input.GetMouseButtonDown(0))
Debug.Log("您在_"+ Time.time+"时,按下鼠标左键");
if(Input.GetMouseButtonDown(1))
Debug.Log("您在_"+ Time.time+"时,按下鼠标右键");
if(Input.GetMouseButtonDown(2))

Debug.Log("您在_"+ Time.time+"时,按下鼠标中键");
if(Input.GetMouseButton(0))
Debug.Log("你一直按着鼠标左键");
if(Input.GetMouseButtonUp(0))
Debug.Log("您在_"+ Time.time + "时,抬起鼠标左键");
}

function OnGUI ( )
{
var e : Event = Event.current; //获取当前事件
if(e.button == 0 && e.isMouse){
Debug.Log("Left Click");
} else if(e.button == 1 && e.isMouse){
Debug.Log("Right Click");
else if(e.button == 2 && e.isMouse){
Debug.Log("Middle Click");
else if(e.button > 2 && e.isMouse){
Debug.Log("Another button in the mouse clicked");
}
if(e.isMouse && (e.clickCount == 2)){
Debug.Log("用户双击鼠标");
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值