咳咳咳。继续编下去,等未来的我来嘲讽现在的我,百度圣典内部函数归类总结

Rigidbody.AddExplosionForce 添加爆炸力

首先是圣典里面的第一个方法:具体方法就对照圣典就好。。。这个方法的第一个操作是确定爆炸的范围(半径:也就是以圆中心为基准的中心点到四周的范围),然后通过Collider[] colliders = Physics.OverlapSphere(explosionPos, radius)这个方法获取到以一个坐标为中心半径的所有有碰撞器的物体的数组(explosionpos:Vector3类型在这里表示以这个坐标为中心。radius:float类型:表示以这个坐标中心为基础范围),然后遍历该Collider数组,接着写判断语句确定你要爆炸的物体特征(比如tag或者这些物体特有的标签之类的),最后用 hit.GetComponent<Rigidbody>().AddExplosionForce(6000, explosionPos, radius);这个方法来实现爆炸效果,第一个参数为爆炸的杀伤力(就是爆炸的效果大小),第二个是中心坐标,第三个是半径。

Rigidbody.AddForce 添加力

接下去是圣典里面的第二个方法:PS我就是想那么写,水字数的。。。这个方法很简单,就是给增加了刚体的物体增加一个三维向量进行移动而已。当重力开启的时候(比如质量MASS为0但是添加的力为100那么会飞速移动,如果Mass为50,力为100,那么这个物体将静止不动(推不动)),这个力的效果和物体的质量和场景的空气阻力和重力有关系,具体添加多少力根据你自己的项目需求调整就可以了

Rigidbody.AddForceAtPosition 在位置上添加力

接下去是圣典里面的第三个方法:就是水。这个百度了会找不到很好的例子。就自己瞎写测试了下,如果不对请给出意见和评论我好修改和进步(就当看笑话),首先在运用这个方法的时候需要当前物体的刚体有一个力,然后是质量和力的比例要力量大于质量才能体现出移动,其中参数force为扭矩向量,参数position为作用点坐标值,参数mode为力的作用方式。第一个参数我理解为以官方例子90度角度为基准,第二个参数我理解为在基准的情况下给那个游戏的摸个坐标增加力的效果达成旋转的效果(当力的作用点和刚体重心坐标的差向量与作用力的方向同向时不发生旋转

Rigidbody.AddRelativeForce 添加相对力

接下去是圣典里面的第四个方法,实在不知道怎么水字数了。。与AddForce的区别AddRelativeForce是沿着他自身的坐标系添加力的,AddForce是沿着全局坐标走的

Rigidbody.AddRelativeTorque 添加相对力矩

接下去是圣典里面的第四个方法,实在不知道怎么水字数了。。。就是围绕自身坐标系进行旋转刚体。写着写着我就在想那还不如直接旋转游戏物体坐标呢,反正效果一样,感觉有点多余。后面再去百度吧。。。。。关于坐标系的理解(比如A是父物体,B是子物体,那么A的坐标系就是时间坐标系。B的坐标系就是相对于A的坐标系的坐标系,和A相对应的坐标系不同,B为自身坐标系。嗯。就那么理解吧,虽然我都不清楚自己想表达啥,但是就那样吧)

Rigidbody.AddTorque 添加力矩

接下去是圣典里面的第五个方法,实在不知道怎么水字数了,,这个是针对世界坐标系使用的旋转方法(用父物体上吧)。。

Rigidbody.angularDrag 角阻力

接下去是圣典里面的第六个方法,实在不知道怎么水字数了。这个是给物体增加角阻力的,直接赋值就好。

Rigidbody.angularVelocity 角速度

接下去是圣典里面的第七个方法,实在不知道怎么水字数了。这个是角速度,官方推荐不要随便修改他,列如这个数值越大旋转就越慢,以此类推,这个方法应用的是Vector3类型的要哪个角转就修改那个角的数值就可以了

Rigidbody.centerOfMass 重心

接下去是圣典里面的第八个方法,实在不知道怎么水字数了。这个是设置物体的重心的,会随物体的移动旋转变化,但是不会随着物体大小变化。PS断断续续编了好久了打会游戏。现在是9点32.争取5点前把圣典所有方法编完吧,实在无聊,我讨厌冷暴力,今天很不开心我只是静静的陪着他为何对我那么冷漠。直接喊我滚就是了,真是的。

Rigidbody.ClosestPointOnBounds 到包围盒的最近点

接下去是圣典里面的第九个方法,11点49分我又开始写了经过两个小时打游戏另外吃了个饭,怎么过都是过,自娱自乐自己打字给自己看。今天下午就到这里吧。脑子里面已经不想装进去东西了打一下午游戏吧!!啊啦啦4月25日11点19分我开始写了,看了网上好像没有具体的实例。那我就自己写个玩玩试试吧,错了的话请以后的我来喷自己。真不知道怎么运用这个,,,咳咳,这个跳过,我写了一下官方的实例过去。测试出的第一个数字就是他自身坐标(就是我爆炸中心的坐标给他。他返回的坐标还是这个,这TM还需要测吗),。只不过把他四舍五入了,反正官方的实例给出的这个方法的作用是计算两点之间的距离,然后计算差值来获取各个坐标中不同坐标距离中心点的距离来模拟计算爆炸中心到爆炸半径之间的距离用的,(我觉得吧。不用这个方法照样能写,不知道他存在的意义)

Rigidbody.collisionDetectionMode 碰撞检测模式

接下去是圣典里面的第十个方法,这个方法顾名思义。是用来在脚本里面修改外面公布的组件里面的参数的(碰撞检测模式,具体有3个模式,前面那个博客有提就不水了。)

Rigidbody.detectCollisions 碰撞检测

接下去是圣典里面的第十一个方法,这个方法是在脚本里面修改外面公布的组件里面的参数的,就是带刚体和这个脚本的游戏物体本身是否参与引擎的物体变化的选择(一些需求是通过动画来进行物理运动的,上个博客有提,他能改变别的与他接触的物体的物理变化,但是不会改变自己)
让动画控制这个刚体并忽略碰撞

rigidbody.isKinematic = true;
rigidbody.detectCollisions = false;

让刚体接管控制,检测碰撞

rigidbody.isKinematic = false;
rigidbody.detectCollisions = true;

Rigidbody.drag 阻力

接下去是圣典里面的第十二个方法,这个方法是在脚本里面修改外面公布的组件里面的参数的,就是修改空气阻力,阻力越大你要给物体加的力越多才能运动,比如阻力100,力10那就是静止不动不会运动的

Rigidbody.freezeRotation 冻结旋转

接下去是圣典里面的第十三个方法,这个方法是在脚本里面修改外面公布的组件里面的参数的(bool类型的),就是刚体是否能被旋转,如果freezeRotation被启用,旋转不会被物体模拟修改。这对于创建第一人称射击游戏时是很有用的,因为玩家需要使用鼠标完全控制旋转。

Rigidbody.GetPointVelocity 获取点速度

接下去是圣典里面的第十四个方法,这个方法看实例介绍应该是获取一个刚体在世界坐标中的一个点的旋转速度,现在来试验一下对不对,这个方法是用来取坐标的。放在FixedUpdate里面执行的话每秒会刷新旋转过后的坐标。所以要根据刷新速度加上在一定时间内旋转的速度的总和在做处理(写个合适的算法)才能获取他自身的旋转速度(总感觉自己的测试方式是错的不应该这样的。)下面还有个GetRelativePoinVelocity方法。但是他的例子和这个一模一样我就不写了,唉,写的时候总是想到游戏,为何玩个游戏到最后人与人之间的相处越来越冷漠了呢。以前我玩的别的一个游戏也是这样,我不喜欢被冷漠的对待

Rigidbody.inertiaTensor 惯性张量

接下去是圣典里面的第十五个方法,方法很简单就是给刚体赋一个vecrtor3类型的值,具体作用我再百度看看文章了解了解吧我直接给脚本加了这个方法后进行了一次旋转速度测试。貌似有影响,,就是在输出的时候本来比如只要1秒钟就输出到了7.0转速,现在需要3秒左右了。难道是让旋转变慢了?惯性?有工作任务下面的一会再写吧。。。后面我在研究点东西。要写点别的东西,后面再写这个。。。。。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值