2.4 物理引擎(下)

day4 物理引擎(下)
1,触发事件
用于物体空间的检测,触发器事件必须满足两个条件:两个物体上都带碰撞器,至少带有一个钢体,并且两物体至少有一个把触发器打开。
OnTriggerEnter(Collider other) 进入触发器的时候调用一次
OnTriggerStay(Collider other) 处于某个触发器之中的时候持续调用
OnTriggerExit(Collider other) 退出触发器的时候调用

2,物理材质
3,射线
射线的创建: Ray ray=new Ray();
origin:射线发射的原点 direction:射线发射的方向
主要方法:使用Physics类方法Raycast方法实现射线碰撞检测功能;
bool Raycast(Ray ray,out RaycatHit hitInfo);
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
从主摄像机到鼠标点击位置创建一条射线;

主要例子:鼠标点击哪里,人物往哪里移动.
if (Input.GetMouseButtonDown(0))
{
//1,得到鼠标点击的位置(相机射线与地面的交点处)
//1.1 发射射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//1.2 检测射线碰撞
//检测射线碰撞
RaycastHit hitInfo;
if (Physics.Raycast(ray,out hitInfo,100))
{
//获取朝向
Vector3 dir = hitInfo.point - transform.position;
Vector3 pos = new Vector3(hitInfo.point.x, 0.5f, hitInfo.point.z);
target = pos;
isMove = true;
//看向某个点,产生的新角度
newRota = Quaternion.LookRotation(dir);
}
}
if (isMove )
{
//实现位移
transform.position = Vector3.Lerp(transform.position, target, Time.deltaTime * 5f);
//线性差值实现旧欧拉角到新欧拉角
transform.rotation = Quaternion.Lerp(transform.rotation, newRota, Time.deltaTime * 5f);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值