25840人加入学习
(149人评价)
Unity2D 初级案例 - 坦克大战(Unity2017.1)

制作于2017年12月23日

价格 免费

碰撞 

两个物体身上有碰撞器

其中一方是刚体 一般在运动的一方上

因为刚体会休眠 就不会发生碰撞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()//固定物理帧 

可以保证时间时匀称的

[展开全文]

发生碰撞的两方要有碰撞器,其中任意的一方要有刚体,而这 有刚体的一方最好是运动的一方。

[展开全文]

碰撞条件 :两个发生碰撞的物体身上都要有碰撞器,其中一方身上要有刚体(这一方最好是运动的一方 因为物体长时间不运动 刚体组件会产生休眠 休眠之后就不会发生碰撞)

 

[展开全文]

有关刚体的代码尽量都放到FixedUpdate()中,可以解决大部分问题

[展开全文]
  • 刚体最好挂在移动的物体上
  • 长时间不运动,刚体会休眠
  • 关闭刚体得重力(不需要下落)
  • 锁死刚体得Z轴旋转(不需要他旋转)
  • 将移动操作移动到FixedUpdate可以修复抖动情况
  • 刚体,力的交互最好都放在物理帧里面
  • time改为fixeddeltatime 物理帧
[展开全文]

坦克朝着两个物体之间仍会发生抖动,可以解决吗

[展开全文]

发生碰撞的条件:

两个发生碰撞的物体都有碰撞器;

其中一方有刚体组件,并且最好是运动的

 

一旦一个刚体以低于某一最小线性或旋转速度运动,物理引擎就会假定它已经停止。当这种情况发生时,对象将不会再次移动,直到它收到碰撞或力,所以它将被设置为睡眠模式。


Update受当前渲染的物体影响,帧与帧的时间间隔不固定

FixedUpdate帧与帧的时间间隔固定,因此些物理属性的更新操作应该放在FxiedUpdate中操作,比如Force,Collider,Rigidbody等。外设的操作也是,比如说键盘或者鼠标的输入输出Input,因为这样GameObject的物理表现的更平滑,更接近现实。

[展开全文]

碰撞检测。

2d 3d碰撞体,区分开。

防止一个运动体旋转, 刚体的constrations z轴给它锁上。

抖动。

fixedUpdate 固定物理帧,匀称。会有物理上受力的影响。就不会抖动了。刚体放到这里来。。

Rigibody2d  fixed

[展开全文]

两个发生碰撞的物体一定都要有碰撞器其中一个要有刚体

[展开全文]

两个碰撞体

box 2d

private void fixedupdate(){}

[展开全文]

fixedUpdate 能解决一些刚体运动碰撞的 

[展开全文]