unity3d 的物理碰撞原理是什么?

熊雄兄 2017-07-24 11:59:32
额,我不是指普通的物理碰撞,
我知道普通的物理碰撞是根据坐标加体积进行判断的到的是否碰撞,
但是有一个问题呀,
比如:
发射一发子弹
同一个场景内几百个实体,
难道每一帧都要对子弹实体与其他实体进行判断么?
而且还可能不止一发子弹,可以是很多发,
我感觉一个线程跑肯定会出问题,

求原理,

...全文
2098 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
_微风祈愿 2017-12-06
  • 打赏
  • 举报
回复
问题比较深,Unity内部已经处理完了,只要处理逻辑判断即可
qq_14827017 2017-12-05
  • 打赏
  • 举报
回复
游戏判断是否被打中应该是服务器那边去判断吧,有客户端频繁的去物理检测,游戏性能不会太高啊
vafozi 2017-11-30
  • 打赏
  • 举报
回复
场景中的静态物体在引擎中以二叉树的形式存储 检测的时候 先进行射线对二叉树的 aabb碰撞体检测 用来剔除大部分的无关数据 最后来确定具体碰撞到了 哪个mesh 检测出mesh之后 再进行 射线到具体面的碰撞 动态物体一般都是八叉树存储 检测速度会慢一点 但添加与删除物体速度会比较快
@超越者@ 2017-11-24
  • 打赏
  • 举报
回复
这个问题比较深。
两水先木示 2017-11-18
  • 打赏
  • 举报
回复
问题解决方案:追溯碰撞函数原码看看,把原码透彻看懂,你能实现你的问题。 你问我,我不会,我是小白
兔子想吃人 2017-09-01
  • 打赏
  • 举报
回复
这应该涉及到空间划分算法,比如八叉树之类的。
红尘丿 2017-08-16
  • 打赏
  • 举报
回复
这个很简单。。。将子弹跟场景划分为两个。。。就可以了
熊雄兄 2017-08-02
  • 打赏
  • 举报
回复
可是,还是没有完全解释完全... @#1:似乎有点明白了,怎么才能算一个桶内?是按坐标分化的么?有些物体是在高速运动的,从一个桶到另一个桶也是需要消耗性能的啊,还是不太懂,请指导。 @#2:不是怎么做,而是突然想弄的unity3d的原理,也算是涨涨见识了。 @#3:目前还没学到服务器这一块...但是原理似乎是这样的。
BattleTiger 2017-07-31
  • 打赏
  • 举报
回复
OnColliderEnter方法不是专门做碰撞检测的吗,判断你想检测的对象的tag值然后进行操作
Moyiii 2017-07-27
  • 打赏
  • 举报
回复
理论上是这样的,但是unity内部不会是那么简单的循环做碰撞检测。比如内部会把多个物体映射到桶内,只在同一个桶内的物体才能够发生碰撞等。
U3D demo 代码案例。本案例介绍了U3D从开始到入门的全部课程。内部包含30个课程案例。代码经过真实测试,非常珍贵。适用于初学者,想入门U3D的游戏开发人员。(U3D版本是 U3D 5.3.6) 包含内容章节简介: 目录: 第1 课: GUIText 或者 GUITexture 组件 第2课:游戏场景基本操作 第3课: 变量与基本数据类型 第3课: 特效组件之 TrailRenderer 第3课: 制作 3D模型 第4课: 3D模型--美化-材质球 第4课: 特效组件--LineRenderer 第4课: 运算符与表达式 【上】 第5课: 声音组件-- AudioSource 第 5 课:运算符与表达式【下】 第 6 课: API--实例化与销毁 第 6 课: 基本组件--摄像机 第 6 课: 用户输入与转义符 第 7 课 : 常用API之Invoke 函数调用 第 7 课 : 基本组件之灯光 第 7 课: 类型转换 与 常量 第 8 课 :常用API 之消息发送 第 8 课 :分支结构之 if 语句 第 8 课:组件与脚本 第 9 课:常用API--协同程序 第 9 课 鼠标键盘输入 第 10 课 : 常用API之脚本生命周期 第 10 课: 使用变换组件移动游戏物体 第 10 课: 循环结构之 for 语句 第 11 课: 循环结构之 while 语句 第 11课 : 常用API之 工具类 第 11 课: 物理组件之刚体 第 12 课: 数组之基本语法 第 12 课:物理射线之原理分析 第 12 课 : 物理组件之碰撞体 第 13 课 : 刚体常用方法介绍 第 13 课 : 数组之元素遍历 第 13 课: 物理射线之打砖块案例 [上] 第 14 课 :物理射线之打砖块案例 [下] 第 14 课:数组之内存结构 第 14 课 :刚体碰撞事件监测与处理 第 15 课:数组之二维数组 第 15 课:刚体触发事件监测与处理 第 16 课: 函数之基本语法 第 16 课:网格组件之网格过滤器和渲染器 第 17 课 : 函数之函数重载 第 18 课 : 函数之高级参数 第 19 课 : 函数之递归调用 第 19 课 : PC 端游戏打包与发布 第 20 课 : C# 语法基础总结 第 20 课 : 新手入门总结 第 17 课 : 疯狂教室案例开发[上] 第 18 课 : 疯狂教室案例开发[下] 第15课 : 飞盘设计案例之案例分析 第16课 : 飞盘设计案例之角色控制 第 17 课 : 飞盘射击案例之飞盘射击 第 18 课 : 飞盘射击案例之 游戏管理器 第 19 课 : 飞盘射击案例之界面逻辑 第 20 课 : 飞盘射击案例之界面逻辑与新手进阶总结
学习安排:4周4个项目实战 学习形式:录播视频+在线作业考核+助教一对一辅导答疑 1. C#基本语法:基本编程(If:…else)语句、数组等。2. C#面向对象编程:封装、继承、多态性、面向接口编程、动态多态性、字符串基础等。3. .Net 框架原理讲解:多维数组、可变参数 Params、类的实例化内存分配机制等。4. 深入学习对象类型:里氏替换原则(LSP)、类的属性极其本质特性、IS ,AS 关键字、深入学习字符串理论、枚举类型以及适用场合。5. 深入学习集合特性:索引器、自定义集合、深入刨析集合类型本质(ArrayList、HashTable)、学习泛型集合、泛型约束等。6. 学习委托与事件:委托与事件的区别、匿名方法、Lambda表达式。7. 正则表达式。8. 查询表达式Linq。9. 反射、特性、动态编程。10. 多线程编程。11. Socket通讯技术。 第二模块:Unity 入门与基础 学习安排:4周3个项目实战 学习形式:录播视频+在线作业考核+助教一对一辅导答疑 课程内容:游戏与Unity发展历史概述、 3D 模型基础、 地形编辑器、光源、音频、Unity脚本程序基础、GUI、3D模型动画的导入 与基本应用、物理学模拟(初级)、碰撞盒与触发器、协程、SendMessage数据传值技术等。 学习安排:4周4个项目实战 学习形式:录播视频+在线作业考核+助教一对一辅导答疑 课程内容:讲解粒子系统、Mecanim、导航寻路、Unity游戏移植技术、Mecanim 动画系统、导航寻路、项目研发常用优化策略、Unity游戏移植与手指触控识别、射线、数据持久化、对象缓冲池技术、物理学模拟(铰链关节(Hinge Joint)、弹簧关节 、固定关节、角色关节)与资源动态加载技术(AssetBundle与WWW)等。 第四模块:Unity项目实训: ARPG项目"地下守护神" 学习安排:4周1个项目实战 学习形式:录播视频+在线作业考核+助教一对一辅导答疑 课程内容:1:前端分层的MVC架构搭建,开发自定义的资源动态加载插件、音频插件、对话系统插件、事件监听插件等。2: UI粒子特效、场景淡入淡出控制。3: 单机与移动端的双输入控制系统开发。4: 数值平衡处理与开发。5: 多种设计模式在游戏研发过程中的灵活运用。6: XML技术的灵活运用,在系统解耦与资源国际化方面的技术突破。7: 开发强大灵活的日志系统插件,应对服务器与移动端的各种复杂系统调试需求。8:开发“对话系统”,与“新手导航”。9:开发基于XML的对象持久化技术。10:开发“背包系统”、“商城系统”、“公告系统”、“任务系统”。11:开发“副本”多种类怪物的战斗系统。12:开发各种战斗特效系统: “血条”、“漂字”、“连击”等功能。 第五模块:虚拟现实(VR)与增强现实技术(AR) 学习安排:1周2个项目实战 学习形式:录播视频+在线作业考核+助教一对一辅导答疑 课程内容:R虚拟现实技术开发:先从什么是虚拟现实(VR)、虚拟现实的主要特点、虚拟现实技术的基础底层原理、国际与国内的产业布局、国际权威机构未来发展趋势预测等讲起。然后主要介绍国际主要领军品牌:Oculus、HTC、SonyVR等产品规格、主要性能指标等。最后重点以一款国内著名VR产品:3Glasses 为代表,介绍VR产品的具体使用、维护、与开发项目全过程流程等。AR 增强实现开发:讲解什么是增强现实、注册高通AR账号、制作识别图、SDK下载与制作、打包发布

2,537

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧