敌人的创建
1.敌人添加与组件设置
1)添加敌人后,刚体添加,碰撞体添加(一个碰撞体使猪在地上走,不接触人,另一个碰撞体组件使人和猪碰在一起产生伤害)
①刚体
②碰撞体一
设置的只在脚下,只需要敌人可以站在场景中就可以
但存在添加碰撞体积后,会和其他移动的人物或敌人产生碰撞使得无法擦肩而过的效果,通过组件中的layer overrides解决敌人与player碰撞问题,通过触发器trigger解决人物碰到猪以后掉血的情况
layer overrides
注意低版本(譬如2022.1.24)unity编辑器在box collider组件中没有layer overrides,需要安装新的editor重新打开项目。版本可能不适应,换了许多版本editor,用最新的。
1.图层重载是指在layer中可以剔除掉不想发生碰撞的角色
2.添加两种图层类型
不需要与player和enemy产生碰撞,则增加这两种图层类型
3.选中敌人,赋值,同理选中玩家
4.给猪剔除这两种图层
trigger
③ 碰撞体二
猪是触发器,成为触发器后猪就没有碰撞体积了
可以触发到猪的不包含enemy,防止敌人之间相互碰撞产生伤害
添加代码测试触发器的触发
用方法OnTriggerStay2D
private void OnTriggerStay2D(Collider2D collision)
{
Debug.Log(collision.name);
}
可见触发器在接触到没有被屏蔽的碰撞体时被触发了
解决报错
Screen position out of view frustum
方法:
增大摄像机的size
人物属性设置、遇敌掉血
1.代码创建
在人物与敌人身上都需要挂这个代码,用于记录人物最大血量与当前血量等属性
例如
public class Character : MonoBehaviour
{
[Header("基本属性"