触发器
//进入触发区域调用
Private void OnTriggerEnter(collider other)
{
{
//离开触发区域调用
Private void OnTruggerExit(collider other)
{
}
射线
Void Start()
{
//射线
Ray ray =new Ray(Vector3.up*3,Vector3.down*4)
//取得射线碰撞的物体,碰撞数据结构体
RaycastHit hit;
//检测射线碰撞
Bool res =Physics.Raycast(ray,out hit);
If(res==true)
{
//射线碰到碰撞体
}
//第二种检测射线碰撞
RaycastHit[] hits=Physics.RaycastAll(ray);
}
点击鼠标左键,人物进行移动
Void Update()
{
If(Input.GetMouseButtonDown(0))
{
//取得射线
Ray ray=Camera.main.ScreenPointToRay(Input.MousePosition);
RaycastHit hit;
Bool res=Physics.Raycast(ray,out hit);
If(res==true)
{
Debug.Log(“hit.point”);
}
}
}
//目标点
Private Vector3 target
Void Start()
{
Target=transform.position;
}
Void Update()
{
If(Input.GetMouseButtonDown(0))
{
Ray ray=Camera.main.ScreenpointToRay(Input.mousePosition);
RaycasHit hit;
//射线检测
Bool res =Physics.Raycast(ray,out hit);
If(res==true)
{
Target=hit.point;
Target.y=transform.position.y;
}
}
If(Vector3.Distance(target,transform.position)>0.3f)
{
//得到向量
Vector3 dir =target-transform.position;
//转向这个向量
Transform.rotation=Quaternion.LookRatation(dir);
//前进
Transform.Translate(Vector3.forward*100*Time.deltaime);
}
}
<< 左移运算符 2<<1 1<<8
左移多少个位,就是乘以2的几次方
>> 右移运算符 除以2的几次方