如果对你有帮助,请做一棵蒲公英,让知识随风飘荡留在人的心里。

1. 人机交互

为什么说物理引擎要说起人机交互呢?假如我们在玩游戏的时候,要控制的可能是人物,飞机,汽车等游戏对象,我们需要跟电脑进行交互,告诉电脑我们想要进行什么样的骚操作,这个时候电脑才会去按我们的想法去操作,然后才会触发一些现象,比如说物理现象。

键盘:
Input类就是u3d引擎提供给我们的人与系统操作的接口,这个类能读取你的按键,你的点击,你的触控或者加速感应数据等等,因为input类里的方法比较多,我们暂时说几个常用的方法来加深下理解,Input.GetKey顾名思义就是input类的得到按键方法,在键按下期间返回true,对应的还有GetKeyDown,GetKeyUp,这几个英文单词组合很简单,看意思就能明白这个方法是做什么的,分别是按下这个键,抬起这个键所触发的事情。
除此之外还有两个单词非常重要,也是经常用到的Horizontal,Vertical,如果看到这个不知道这个单词的小伙伴一定要自己动手查,这样印象才最深刻,掌握程序要求必须会倒背如流不能出错,他们分别代表水平虚拟按键与竖直虚拟按键,你可以在Edit->Project->Settings->Input打开输入管理器看他们的相关的属性,切记不懂单词就查,之后就记忆,这样水平就会在不知不觉中提高,对新手来说会大大的减少你阅读英文API的难度。
大多数Windows窗体程序都通过处理键盘事件来处理键盘输入,通过指定的按键检测按键不同的状态。
比如说我想得到水平或者数值虚拟轴(Horizontal,Vertical)的值,我可以用Input.GetAxis(“Horizontal”)的方法,那么我们看一下这个方法的返回值是什么呢?
float类型没错,所以我们可以用一个值来接收返回值 float hor = Input.GetAxis(“Horizontal”);
鼠标
与键盘原理相同,我们也列举一些鼠标属性的一些常用方法,mousePosition得到鼠标当前的位置(在实际应用中需要转换坐标轴,因为我们所看到的显示器是二维的只有X,Y,而U3D引擎中的3D场景是三维的,如果直接告诉计算机得到鼠标的位置,计算机是不知道你的Z轴是多少的,这样一说就懂了吧,至于这个问题我们一会儿再说),GetMouseButtonDown鼠标按下,GetMouseButtonUp鼠标抬起,GetMouseButton鼠标按下期间,GetAxis(“Mouse X”) 得到鼠标在水平方向的移动距离(一帧),GetAxis(“Mouse Y”)得到鼠标在数值方向的移动距离(一帧),GetAxie(“Mouse ScrollWheel”)获取滚轮的值。

2. 碰撞器
Collider碰撞器!!!
当我们在场景创建游戏对象后,引擎会自动为物体加上碰撞器组件的,主要功能是进行碰撞检测的。对于不同形状的游戏物体当然碰撞器的形状也是不一样的,要不然不成碰瓷了么?我们来看一下引擎给我们提供了哪些方法来使用,OnMouseDown鼠标在游戏物体上,按下则触发,OnMouseDrag鼠标在游戏物体上,拖动则触发,OnMouseEnter鼠标进入碰撞体区域就被触发,OnMouseExit鼠标离开碰撞体区域就被触发,OnMouseOver鼠标在游戏物体上每一帧都会触发,OnMouseUp当鼠标抬起会被触发,还有最后一个OnMouseUpAsButton当鼠标在同一个碰撞体上按下又抬起的时候就会触发,是不是看了英文就明白这个方法了呢?
3. 刚体组件
在游戏中使用物理引擎的好处就是可以模拟出现实世界中的一些物理效果,比如说重力,摩擦力,碰撞等让人感觉真实,U3D使用的是PhysX物理引擎!
给游戏对象添加RigidBody组件后,你可以看到一些引擎给我们提供的一些参数,同样是不懂的一定要查!我们举一些经常用的属性来理解一下,velocity刚体的速度,angularVelocity刚体的角速度 ,drag物体的阻力,angularDrag物体的角阻力,mass刚体的质量,useGravity是否受重力影响,isKinematic是否使用动力学,freezeRotation是否冻结旋转,collisionDetectionMode碰撞检测模式,position刚体位置,rotation刚体旋转。
刚体又有哪些常用的方法呢?AddForce给刚体添加一个力,AddExplosionForce给刚体添加一个力,模拟爆炸效果,AddForceAtPosition在指定的位置添加一个力,AddRelativeForce添加相对力,AddRelativeTorque添加相对力矩,MovePosition使用刚体移动物体到指定位置。

4. 碰撞事件
静态碰撞器Static Collider:只有碰撞器没有刚体的物体,保持静止:树木等。
刚体碰撞器Rigidbody Collider:具有刚体和碰撞器的物体;完全受物理引擎影响。
运动学刚体碰撞器:带刚体,且勾选Is Kinematic,此碰撞器不能添加力,只能通过transform移动。

发生碰撞的条件
1.发生碰撞的两个物体必须带有collider
2.发生碰撞的两个物体至少有一个带有刚体
3.发生碰撞的两个物体必须有相对运动(要碰在一起)

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

  1. U3d之物理引擎(下)

    如果对你有帮助,请做一棵蒲公英,让知识随风飘荡留在人的心里. 1. 触发事件 要想判断一个角色是否在某个空间区域,除了直接计算Transform组件的position值外,还可以怎么做呢? 我们可以把 ...

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

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

  3. C++ 3D物理引擎库BulletPhysics基本使用

    前言:最近在接触OpenGl和DX11的时候,顺便学习了Bullet这个3D物理引擎的基本使用,记录一下. |BulletPhysics介绍 BulletPhysics是一个跨平台的开源物理引擎,也是 ...

  4. 常见3D游戏物理引擎总结

    1.  Havok: 老牌的君王,支持功能如下: http://www.havok.com ·         Collision Detection - including Continuous P ...

  5. 常见3D物理引擎概述

    今天帮朋友找3D物理引擎的资料,以前也看过那么多了,一直没有总结过,今天顺便整理一下. 1.  Havok: 老牌的君王,支持功能如下: http://www.havok.com ·          ...

  6. webGL、webGPU、封装、渲染引擎 three.js、游戏引擎,定位是游戏开发,在前面的渲染引擎基础上,还提供了骨骼动画、物理引擎、AI、GUI 等功能,以及可视化编辑器来设计关卡,支撑大型游戏

    https://zhuanlan.zhihu.com/p/162878354 如何选择 WebGL 框架和引擎? ​ 知道得越多,不知道的就更多了 数据可视化Sugar-百度智能云 ​cloud.ba ...

  7. 在Android上使用libgdx-box2d物理引擎

    前言 相比Ios UiKit原生支持物理引擎,Android确实麻烦的不要不要. 为什么用 libgdx Android上最方便的方案是jbox2D,缺点是在java层实现,物理多了之后性能很卡.笔者 ...

  8. 在Android上使用libgdx-box2d物理引擎的实践-20220113

    根据文章"在Android上使用libgdx-box2d物理引擎"后实践过程 1. gralde报错解决,猜测是gralde语法和版本号问题. 1.去maven库手动下载com.b ...

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

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

最新文章

  1. learn python the hard way结尾_翻译学python---《Learn Python the hard Way》---第一章 绪论
  2. Hyper-V 性能加速之VMQ
  3. 内核启动流程分析(三)makefile
  4. Java 散点图 数据库 代码_java – 来自数据库的jfreechart中的散点图
  5. 轻松学习JavaScript十七:JavaScript的BOM学习(二)
  6. python可视化神器_详解Python可视化神器Yellowbrick使用
  7. sass webpack_如何在Visual Studio和Webpack中编译Sass文件
  8. Linux开启文件共享服务
  9. hdu 1025 Constructing Roads In JGShining's Kingdom
  10. Dubbo源码分析系列之-整体架构设计
  11. minishell的实现及IO接口的调用
  12. 动态代理(2)----动态代理和AOP
  13. ps制作html图标素材,PS按钮图标制作
  14. 进度管理工具 planner
  15. 自动开关机软件哪个好?自动开关机软件盘点
  16. 第二届(2021—2022学年)少年硅谷——全国青少年人工智能教育成果展示大赛
  17. JS常见的兼容性问题汇总
  18. 荣耀magicbookpro升级鸿蒙,魔法互传功能再升级 荣耀MagicBook 2019发布 售价3999元起...
  19. the specified jre installation does not exist 规定的jre没有安装
  20. java输出美国的时间_java显示当前美国洛杉矶时间

热门文章

  1. CAD转PDF如何修改背景颜色
  2. 微信小程序开发之——map组件
  3. 微信小程序——添加广告
  4. 19年全国电赛 H题电磁炮硬件电路+可控硅
  5. 欧姆龙485通讯示例程序_欧姆龙PLC型号大全
  6. C语言 水仙花数两种算法
  7. JavaScript连缀
  8. 大数据能力_大数据基础能力_脑图
  9. 折线(Polyline)、多边形(Polygon)
  10. win10环境下安装VB(解决兼容性问题)