Input類---- 鼠標(biāo)輸入
1.使用這個類能夠讀取輸入管理器設(shè)置的按鍵,以及訪問移動設(shè)備的多點(diǎn)觸控或加速感應(yīng)數(shù)據(jù)。
常用屬性和方法
(參數(shù)為0代表獲取鼠標(biāo)按鈕左鍵,參數(shù)為1代表獲取鼠標(biāo)按鈕右鍵,參數(shù)為3代表獲取鼠標(biāo)按鈕中建)
Input.GetMouseButton(0)
當(dāng)指定的鼠標(biāo)按鈕被按下時返回true
Input.GetMouseButtonDown(0)
在用戶按下指定鼠標(biāo)按鍵的那一幀返回true。
Input.GetMouseButtonUp(0)
在用戶釋放指定鼠標(biāo)按鍵的那一幀返回true。
GetAxis(“Mouse X”)
得到一幀內(nèi)鼠標(biāo)在水平方向得到的移動距離
GetAxis(“Mouse Y”)
得到一幀內(nèi)鼠標(biāo)在水垂直向得到的移動距離
GetAxis(“Mouse ScrollWheel”)
獲取鼠標(biāo)滾輪的值
mousePosition
獲取鼠標(biāo)當(dāng)前位置
實(shí)現(xiàn)跟隨鼠標(biāo)的上下左右移動
//鼠標(biāo)X軸
value_x = Input.GetAxis("Mouse X");
//鼠標(biāo)Y軸
value_y = Input.GetAxis("Mouse Y");
//鼠標(biāo)滑輪軸
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可以獲取任意鍵
當(dāng)用戶按下由KeyCode枚舉確定的按鍵時,然后true。
Input.GetKeyDown(KeyCode.Space)
當(dāng)用戶按下指定名稱的按鍵時的那一幀返回true。
Input.GetKeyUp(KeyCode.Space)
在用戶釋放給定名字的按鍵的那一幀返回true。
獲取軸(Input.GetAxis)
根據(jù)參數(shù)的不同可以獲取不同的軸
Input.GetAxis("Vertical")
獲取垂直軸w-s表示前進(jìn)后退
Input.GetAxis("Horizontal")
獲取水平軸a-s表示左右
實(shí)現(xiàn)控制物體的前進(jìn)后退以及旋轉(zhuǎn)
float ver = Input.GetAxis("Vertical");
float hor = Input.GetAxis("Horizontal");//水平的
//處理物體的前后移動
transform.Translate(new Vector3(0, 0, ver) * Time.deltaTime * moveSpeed);//通過獲取的垂直的浮點(diǎn)值給物體的Z軸也就是物體前后方向賦值
//處理物體的旋轉(zhuǎn)
transform.Rotate(new Vector3(0, hor, 0) * rotateSpeed);//獲取水平值,用來旋轉(zhuǎn)物體的Y軸
獲取組件
GetComponent<組件名>()
可以獲取到想用的組件
碰撞器Collider
OnCollisionEnter(Collision other)
碰撞開始一瞬間被調(diào)用
OnCollisionStay(Collision other)
一直處于碰撞狀態(tài)時被調(diào)用
OnCollisionExit(Collision other)
碰撞分離的一瞬間被調(diào)用
剛體Rigidbody
按下空格鍵讓物體有向上的力
void Update () {
if (Input.GetKeyDown(KeyCode.Space))//獲取建按下 Keycode枚舉中可以選擇具體的按鍵
{
// rig.AddForce(Vector3.up * speed);//剛體對象AddForce(添加力)參數(shù)是向量
rig.AddForce(Vector3.up * speed, ForceMode.VelocityChange);
}
}
實(shí)現(xiàn)爆炸事件
void Update()? ? {? ? ? ? float ver = Input.GetAxis("Vertical");//垂直w-s表示前進(jìn)后退? ? ?
?? 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);
}
}
}