Input类,碰撞器Collider 刚体Rigidbody

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);

}

}

}

你可能感兴趣的:(Input类,碰撞器Collider 刚体Rigidbody)