物理材質(zhì)(Physic Material):
項目視圖(project)右擊? Create - Physic Material ? ?選擇創(chuàng)建
屬性依次為:動態(tài)摩擦力? 靜態(tài)摩擦力? ? 反彈力? ? 組合摩擦力(取平均值贯溅、取最小值拄氯、取乘積值、取最大值)組合彈力(取平均值盗迟、取最小值坤邪、取乘積值、取最大值)
使用方法: ?直接把設置好的物理材質(zhì)拖進去就行了
射線Ray:
射線類Ray組成部分罚缕、起點(0rigin)方向(direction)
//實例化一條射線
Camera.main主攝像機 ? ? ? ? ? ? ScreenPointToRay將屏幕上的一個點轉(zhuǎn)換成射線
Input.mousePosition獲取鼠標坐標
Ray ??r = ?Camera.main.ScreenPointToRay(Input.mousePosition);
Raycast發(fā)射物理射線返回一個碰撞檢測對象RaycastHit【參數(shù)有 ?起點 ?方向 ?距離】
Physics物理學 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Physics.Raycast(r, 1000)
raycastAll發(fā)射物理射線艇纺,返回所有碰撞檢測對象RaycastHit
用來描述射線射到的物體
RaycastHit hit;
屬性collider碰撞物體的Collider組件point碰撞點坐標
.point可以獲取射線射到的點的世界坐標
世界坐標器
本地坐標器
攝像機坐標系:
屏幕坐標系:(ScreenPoint)
視圖坐標系:(ViewPoint)
示例:
void RayCastTest()
{
//實例化一條射線
Ray r = Camera.main.ScreenPointToRay(Input.mousePosition);
//用來描述射線射到的物體
RaycastHit hit;
//
if(Physics.Raycast(r, out hit,100)){
//打印射中物體的名字
Debug.Log(hit.transform.name);
if (hit.transform.name == "Plane")
{
//.point可以獲取射線射到的點的世界坐標
//transform.position = hit.point + new Vector3(0,0.5f,0);
transform.position = Vector3.Lerp(transform.position, hit.point + new Vector3(0, 0.5f, 0), Time.deltaTime * 5);
}
}