碰撞
两个物体身上有碰撞器
其中一方是刚体 一般在运动的一方上
因为刚体会休眠 就不会发生碰撞jian'c
碰撞
两个物体身上有碰撞器
其中一方是刚体 一般在运动的一方上
因为刚体会休眠 就不会发生碰撞jian'c
检测两方发生碰撞,两方都必须要有碰撞器(box collider),一方必须有钢体,钢体最好是运动的一方。
加上钢体之后每一帧都会有个力的影响。所以会出现抖动的效果,因为他受到的这种情况就要用到void FixedUpdate里面,他就会保证每一帧都是受力均匀的。
重点课时
碰撞器添加
发生碰撞检测的条件
1.两个身上都要有碰撞器
2.运动的一方身上要有刚体(不然会休眠)
碰撞器分两大类
1.3D碰撞器
2.2D碰撞器
小知识;在菜单上面做操作是不会影响预制体的,要在预制体上做操作,这样就会自动复制在克隆体上面,或者菜单里面按Apply
2D游戏应该调整重力 不然会往下掉Gravity Scale
Consraints 应该锁上Z轴,不然会发生碰撞旋转
private void FixedUpdate() //固定物理帧 这样子每一秒的帧数都是固定的,匀称的
(防止鬼畜!解决抖动效果)
解决,钢体抖动
FixedUpade():固定物理睁,每睁占用的时间是相同的;
transform.Translate(Vector3.right * x * Time.deltaTime * speed, Space.World);
transform.Translate(Vector3.up * y * Time.deltaTime * speed, Space.World);
碰撞检测条件,两个物体中必须有collider+其一RigidBody
FixedUpdate{}固定侦,解决碰撞
碰撞检测的两个必要条件
1、组件身上要有碰撞器
2、其中一方要有刚体(最好是运动的一方)。
原因:刚体长时间不运动会休眠就不会发生碰撞检测。
每一帧受力是相同的,不能发生变化。所以放到物理帧中:FixedUpdate();
碰撞检测:
1.两个身上都要有碰撞器
2.其中一个(最好是运动的一方)要有刚体
刚体经常不动会休眠
碰撞体分为两大类
2D,3D
添加box collider 2D(碰撞器)
为player及Map里的添加刚体
刚体组件里控制重力 Gravity scale
*解决坦克碰撞时旋转:
坦克的刚体-constraints点击z轴
private void FixedUpdate()//固定物理帧
可以保证时间时匀称的
发生碰撞的两方要有碰撞器,其中任意的一方要有刚体,而这 有刚体的一方最好是运动的一方。
碰撞条件 :两个发生碰撞的物体身上都要有碰撞器,其中一方身上要有刚体(这一方最好是运动的一方 因为物体长时间不运动 刚体组件会产生休眠 休眠之后就不会发生碰撞)
print(hello)
有关刚体的代码尽量都放到FixedUpdate()中,可以解决大部分问题
坦克朝着两个物体之间仍会发生抖动,可以解决吗
发生碰撞的条件:
两个发生碰撞的物体都有碰撞器;
其中一方有刚体组件,并且最好是运动的
一旦一个刚体以低于某一最小线性或旋转速度运动,物理引擎就会假定它已经停止。当这种情况发生时,对象将不会再次移动,直到它收到碰撞或力,所以它将被设置为睡眠模式。
Update受当前渲染的物体影响,帧与帧的时间间隔不固定
FixedUpdate帧与帧的时间间隔固定,因此些物理属性的更新操作应该放在FxiedUpdate中操作,比如Force,Collider,Rigidbody等。外设的操作也是,比如说键盘或者鼠标的输入输出Input,因为这样GameObject的物理表现的更平滑,更接近现实。
碰撞检测。
2d 3d碰撞体,区分开。
防止一个运动体旋转, 刚体的constrations z轴给它锁上。
抖动。
fixedUpdate 固定物理帧,匀称。会有物理上受力的影响。就不会抖动了。刚体放到这里来。。
Rigibody2d fixed
两个发生碰撞的物体一定都要有碰撞器其中一个要有刚体
两个碰撞体
box 2d
private void fixedupdate(){}
fixedUpdate 能解决一些刚体运动碰撞的