2.4 物理引擎(下)
来源:互联网 发布:数码宝贝网络侦探友情 编辑:程序博客网 时间:2024/06/06 19:23
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
- 2.4 物理引擎(下)
- 物理引擎?
- 物理引擎
- 物理引擎
- 物理引擎
- 物理引擎
- 物理引擎
- 物理引擎
- 物理引擎
- 物理引擎
- 物理引擎
- 物理引擎
- 物理引擎
- 物理引擎
- /LGC物理引擎/Ubuntu 下编译运行 Box2D
- 在windwos+codeblocks环境下安装ode物理引擎
- Windows下cocos2dx-v3.1 导入Box2d物理引擎库 进行物理世界开发
- 物理引擎与游戏引擎
- POJ 3190 Stall Reservations
- 51nod1134 最长递增子序列
- 自定义JsonUtils实现对象和json字符串的相互转换
- ROS学习笔记4-使用节点,消息,主题和服务
- HTML5特点
- 2.4 物理引擎(下)
- 我的第四篇博客
- Window和WindowManger
- 求余数
- HDU 4587 TWO NODES(无向图割点)
- FFF at Valentine HDU
- ASP基础
- Python爬取网页图片
- first_try