Input类---- 鼠标输入
1.使用这个类能够读取输入管理器设置的按键,以及访问移动设备的多点触控或加速感应数据。
常用属性和方法
(参数为0代表获取鼠标按钮左键,参数为1代表获取鼠标按钮右键,参数为3代表获取鼠标按钮中建)
Input.GetMouseButton(0)
当指定的鼠标按钮被按下时返回true
Input.GetMouseButtonDown(0)
在用户按下指定鼠标按键的那一帧返回true。
Input.GetMouseButtonUp(0)
在用户释放指定鼠标按键的那一帧返回true。
GetAxis(“Mouse X”)
得到一帧内鼠标在水平方向得到的移动距离
GetAxis(“Mouse Y”)
得到一帧内鼠标在水垂直向得到的移动距离
GetAxis(“Mouse ScrollWheel”)
获取鼠标滚轮的值
mousePosition
获取鼠标当前位置
实现跟随鼠标的上下左右移动
//鼠标X轴
value_x = Input.GetAxis("Mouse X");
//鼠标Y轴
value_y = Input.GetAxis("Mouse Y");
//鼠标滑轮轴
value_z = Input.GetAxis("Mouse ScrollWheel");
transform.position += new Vector3(0, 0, value_z*2);
transform.Rotate(new Vector3(value_y,-value_x, 0));
键盘获取
Input.GetKey (KeyCode.W)获取键W可以获取任意键
当用户按下由KeyCode枚举确定的按键时,然后true。
Input.GetKeyDown(KeyCode.Space)
当用户按下指定名称的按键时的那一帧返回true。
Input.GetKeyUp(KeyCode.Space)
在用户释放给定名字的按键的那一帧返回true。
获取轴(Input.GetAxis)
根据参数的不同可以获取不同的轴
Input.GetAxis("Vertical")
获取垂直轴w-s表示前进后退
Input.GetAxis("Horizontal")
获取水平轴a-s表示左右
实现控制物体的前进后退以及旋转
float ver = Input.GetAxis("Vertical");
float hor = Input.GetAxis("Horizontal");//水平的
//处理物体的前后移动
transform.Translate(new Vector3(0, 0, ver) * Time.deltaTime * moveSpeed);//通过获取的垂直的浮点值给物体的Z轴也就是物体前后方向赋值
//处理物体的旋转
transform.Rotate(new Vector3(0, hor, 0) * rotateSpeed);//获取水平值,用来旋转物体的Y轴
获取组件
GetComponent<组件名>()
可以获取到想用的组件
碰撞器Collider
OnCollisionEnter(Collision other)
碰撞开始一瞬间被调用
OnCollisionStay(Collision other)
一直处于碰撞状态时被调用
OnCollisionExit(Collision other)
碰撞分离的一瞬间被调用
刚体Rigidbody
按下空格键让物体有向上的力
void Update () {
if (Input.GetKeyDown(KeyCode.Space))//获取建按下 Keycode枚举中可以选择具体的按键
{
// rig.AddForce(Vector3.up * speed);//刚体对象AddForce(添加力)参数是向量
rig.AddForce(Vector3.up * speed, ForceMode.VelocityChange);
}
}
实现爆炸事件
void Update() { float ver = Input.GetAxis("Vertical");//垂直w-s表示前进后退
float hor = Input.GetAxis("Horizontal");//水平的
//处理物体的前后移动
transform.position += new Vector3(hor, 0, ver) * Time.deltaTime * speed;
}
public void OnCollisionEnter(Collision collision) {
if (collision.gameObject.name == "GameObject")
{ Vector3 pos = transform.position;
Collider[] colliders = Physics.OverlapSphere(pos,3);
Debug.Log(colliders.Length);
foreach (var item in colliders)
{ if (!item)
{
continue;
}
if (item.GetComponent())
{
item.GetComponent().AddExplosionForce(_s,pos,10,15f);
}
}
}