碰撞检测条件,两个物体中必须有collider+其一RigidBody
FixedUpdate{}固定侦,解决碰撞
碰撞检测条件,两个物体中必须有collider+其一RigidBody
FixedUpdate{}固定侦,解决碰撞
API
重复调用
InvokeRepeating(方法名,延时几秒后第一次调用,每隔多久调用一次)
重点课时
场景的实例化(场景搭建)
触发检测 触发器
触发器不会触发物理效果,而是发生一个检测
(一触即发)
碰撞器加上Is trigger打钩
触发检测必要条件
1.双方必须具有碰撞器,并且其中一方是触发器
2.有一方身上必须有刚体(同理最好在运动的物体身上设置刚体)
碰撞检测API
1.OnTriggerEnter 当两个物体接触时
2.OnTriggerExit 当两个物体出来时
3.OnTriggerStay 当两个物体互相进入
(2D游戏记得加上2D)
做2D游戏的时候,旋转角度应该是反过来的负度数
重点课时
碰撞器添加
发生碰撞检测的条件
1.两个身上都要有碰撞器
2.运动的一方身上要有刚体(不然会休眠)
碰撞器分两大类
1.3D碰撞器
2.2D碰撞器
小知识;在菜单上面做操作是不会影响预制体的,要在预制体上做操作,这样就会自动复制在克隆体上面,或者菜单里面按Apply
2D游戏应该调整重力 不然会往下掉Gravity Scale
Consraints 应该锁上Z轴,不然会发生碰撞旋转
private void FixedUpdate() //固定物理帧 这样子每一秒的帧数都是固定的,匀称的
(防止鬼畜!解决抖动效果)
方法一:
通过素材的图片控制Player的方向转动
Player
private SptiteRenderer srl
Update()
我用的是2017.4.2f2的版本
上面显示说Instance有保护级别,不可调用
两方都有碰撞器,运动的一方要有刚体。
碰撞体分两类为2D和3D
把空气墙,家园墙做成预制体,实例化预制体就行了。
num > 5只取6 7,应该num>4
Invoke方法记时和Destory方法记时是同时开始的,如果Invoke方法比Destory方法设置的时间长一些,比如1.0f和0.8f,则在调用Borntank方法生成坦克的1s内,到第0.8s时就开始运行Destory方法销毁了Born游戏物体,坦克无法生出。
坦克的产生依赖于Born游戏物体,如果游戏界面没有Born物体,则无法产生坦克。
Enemy遇到Player无法被销毁。
case "Tank":
if(isPlayerBullect)//不是玩家的子弹
{
collision.SendMessage("Die");
}
break;
老师的简单一些,按照程序的顺序执行
这样写会出现一个问题,比如玩家如果同时按上和左建,坦克会斜着移动,所以建议将transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime,Space.World);
transform.Translate(Vector3.up * h * moveSpeed * Time.deltaTime,Space.World);这两句写在if里面,且在交换精灵之后应该更合理,先换图再移动。
if (h < 0)//左边
{
sr.sprite = tankSprite[3];
transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime, Space.World);
}
else if(h > 0)
{
sr.sprite = tankSprite[1];
transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime, Space.World);
}
else if(v > 0)
{
sr.sprite = tankSprite[0];
transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime, Space.World);
}
else if(v < 0)
{
sr.sprite = tankSprite[2];
transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime, Space.World);
}
else
{
return;
}
2D游戏的UI与3D是相反的,即旋转度数相反
SpriteRenderer中
Sorting Layer是渲染的大层级
Order in Layer 是大层级下的小层级渲染顺序
Order in Layer越大,越晚渲染,也就是越不会被覆盖
shift选中多张图片拖入场景,可以直接创建为Animation
会生成一个Animation和一个Animator
选中文件后F2重命名文件
图集和单一图片
图集可以裁剪成多个图片使用
导入的素材的Texture Type要调成Sprite(2D and UI)
图集还要多把Sprite Mode调成Multiple
用Sprite Editor切割图集
Slice
坦克大战