如果对你有帮助,请做一棵蒲公英,让知识随风飘荡留在人的心里。
1. 触发事件
要想判断一个角色是否在某个空间区域,除了直接计算Transform组件的position值外,还可以怎么做呢?
我们可以把对象身上的XXX Collider触发器上勾选Is Trigger选项!
触发器事件执行的条件:两个物体上都要带碰撞器,至少带有一个刚体,并且两物体至少有一个把触发器打开。
触发器有哪些回调方法呢?
OnTriggerEnter(Collision other)代表进入触发器的时候调用一次
OnTriggerStay(Collision other)代表停留在触发器的时候持续调用
OnTriggerExit(Collision other)代表离开触发器的时候调用一次

作为回调方法的参数 other对象则是进入碰撞体的一方。

2. 物理材质
在Project窗口中点击右键Create->Physic Material创建物理材质
Dynamic Friction为动态摩擦力系数,范围0-1之间。
Static Friction为静态摩擦力系数,范围同上。
Bounciness反弹系数,范围同样是0-1.(这里有个有趣的现象,估计牛顿老人家的棺材板要压不住了呢,如果你在场景中创建一个物体,把它的反弹系数最大化,然后添加刚体使用重力,提起一个高度让它自然下落到一个同样有反弹系数最大的平面上,你会发现它不仅会像永动机一样跳动,还会越来越高,直至突破天际,大家想想这是为什么呢?)
当我们设置好了物理材质后,我们可以把做好的物理材质拖到Collider上的Material上使用,是不是很简单很方便呢?

3. 射线
我们再来思考一个问题,如何实现物体的移动到鼠标点击的位置呢?
这里我们来说说Unity提供的射线机制:通过虚拟射线检测所碰撞的物体(这个射线是看不到的,但是可以调试出结果)
Ray作为射线类,可以直接创建一条射线Ran ran = new Ray();
我们来看看他的两个属性,origin与direction,前者是发射的原点,后者则是发射的方向。
使用物理类Physics的Raycast方法可以实现射线碰撞检测功能
Physics.Raycast(Ray ray,out RaycastHit hit);其中的一种重载形式
返回值是bool值,所以我们可以判断是否射到了某些物体或图层
这里要来讲解一些物理引擎上篇的一个小问题
我们鼠标点击的点在U3D的世界里是三维的,那么我们的电脑屏幕是二维的,如何告诉电脑我们所点击坐标的Z轴呢?这里我们可以先手动实现一下,再看引擎给我们提供的方法。
Vector3 pos = input.MousePosition;
pos = new Vector3(pos.x,pos.y,Camera.main.transform.position.z);
pos = Camear.main.ScreenToWorldPoint(pos);
但是我们如果每次都这样写岂不是很麻烦?那我们来看看系统的方法
Ray ray = Camera.main.ScreenPointToRay(input.mousePosition);一句话搞定,但是效果是一样的,大家可以理解下原理。

U3d之物理引擎(下)相关推荐

  1. U3d之物理引擎(上)

    如果对你有帮助,请做一棵蒲公英,让知识随风飘荡留在人的心里. 1. 人机交互 为什么说物理引擎要说起人机交互呢?假如我们在玩游戏的时候,要控制的可能是人物,飞机,汽车等游戏对象,我们需要跟电脑进行交互 ...

  2. 基于APE物理引擎的管线容积率计算方法

    容积率一般应用在房地产开发中,是指用地范围内地上总建筑面积与项目总用地面积的比值,这个参数是衡量建设用地使用强度的一项非常重要的指标.在其他行业,容积率的计算也非常重要,如产品利用率.管道使用率等等. ...

  3. [Unity 3D] 物理引擎学习笔记(一)

    刚体: 同是物理引擎提供的功能,碰撞检测只需要有 Collider 便可以运作,但所有与作用力相关的属性和函数却都依赖 Rigidbody. 重力: 一旦使用了 Rigidbody 组件,这个 Gam ...

  4. unity 下一帧执行_Unity中的Havok Physics物理引擎

    在GDC 2019上,我们宣布将Havok Physics作为预览版资源包加入到Unity资源包管理器,这意味着所有Unity开发者都可以使用这款知名的物理引擎.在当今主机平台中,Havok Phys ...

  5. Unity3D游戏开发初探—3.初步了解U3D物理引擎

    一.什么是物理引擎? 四个世纪前,物理学家牛顿发现了万有引力,并延伸出三大牛顿定理,为之后的物理学界的发展奠定了强大的理论基础.牛顿有句话是这么说的:"如果说我看得比较远的话,那是因为我站在 ...

  6. python box2d 教程_python下的Box2d物理引擎的配置

    I come back! 由于已经大四了,正在找工作 导致了至今以来第二长的时间内没有更新博客.向大家表示道歉 前言 Box2d物理引擎 Box2d是一款开源的2d物理引擎,存在很多的版本,C++,J ...

  7. 【Unity 3D】学习笔记三十六:物理引擎——刚体

    物理引擎就是游戏中模拟真是的物理效果.如两个物体发生碰撞,物体自由落体等.在unity中使用的是NVIDIA的physX,它渲染的游戏画面很逼真. 刚体 刚体是一个很很中要的组件. 默认情况下,新创的 ...

  8. 《Unity 4 3D开发实战详解》一6.7 物理引擎综合案例

    本节书摘来异步社区<Unity 4 3D开发实战详解>一书中的第6章,第6.7节,作者: 吴亚峰 , 杜化美 , 张月霞 , 索依娜 责编: 张涛,更多章节内容可以访问云栖社区" ...

  9. 创建可微物理引擎Nimble,开源SOTA人体骨骼模型,斯坦福腿疾博士生用AI「助跑」人生...

    来源:机器之心本文约2000字,建议阅读5分钟 身残志坚,斯坦福大学的这位人工智能 + 机器人博士生想用技术克服身体缺陷. 有一位研究者,他身患残疾,出生时便患有退行性神经疾病,该疾病一直攻击着他的外 ...

最新文章

  1. Apache源码包在LINUX(CENTOS6.8)中的安装(出现问题及解决)
  2. Facebook 重金挖不到,ASP.NET 之父,微软大神“红衣教主”传奇
  3. 争做RTC领域标杆——与华为云副总裁薛浩聊聊我们的视频时代
  4. 数学--数论--四大定理之威尔逊定理
  5. LeetCode MySQL 1076. 项目员工II
  6. 如何使用FL Studio录制外部音频
  7. matlab工作区导入多个文件,MATLAB可以直接把Excel文件中的数据导入工作区中
  8. OverflowError: Python int too large to convert to C long 在Windows环境下Python报错
  9. HTML2——图像、超链接
  10. linux脚本编程for,谢烟客---------Linux之bash脚本编程---if补充和for循环
  11. 督办管理系统项目总结
  12. 复选框的全选、全不选、和获取选中的值;
  13. 用程序哄你的小孩睡觉
  14. autohotkey windows画板 Mspaint 快捷键
  15. 梯度下降算法与随机梯度下降算法:实现波士顿房价问题
  16. US-016超声波测距模块
  17. 互联网技术从业者怎么解决系统高并发?
  18. There is no getter for property named ‘xxx‘ in ‘class com.test.project.entity.
  19. 常用颜色的十六进制和rgb格式
  20. 数学建模进入“新课标”,告别了“刷题”“押题”数学应该怎么学?

热门文章

  1. HTML5面试题总结
  2. 南大周志华教授入围院士候选!计算机领域共计7人
  3. Mac键盘锁住了怎么办
  4. 使用nprobe+ntopng监控上百个路由器流量
  5. android t9搜索算法,T9拨号盘搜索和排序算法
  6. android单机斗地主,单机斗地主最新安卓版
  7. 新手怎么做直播卖货?都有哪些卖货成交话术技巧?
  8. RTX 4070TI和RTX 4090性能差距 RTX4070ti和4070区别对比
  9. 【算法学习】前缀树Trie
  10. web页面:浏览器操作