人时消灭(补8.15)"/>
Unity2D学习笔记Day8:添加敌人——踩到敌人时消灭(补8.15)
学习资源:B站 M_Studio《Unity教程2D入门》13
Unity Assets:Sunnyland
Day8
预期效果:若玩家踩到敌人的头上,则可以将敌人消灭
准备工作
1.将素材导入
2.将素材尺寸调整好——Pixels Per Unit设为16
3.创建2Dsprite
4.给该sprite添加图片,一般默认是最常用的一张图——Sprite属性
如果不显示,则需要调整sorting layer
5.添加Rigidbody2D 和 collider
如果是tile碰撞体(记得锁定RigidBody的z轴)
6.添加animator
消灭敌人
注意:这里因为不是用isTrigger来设置敌人的碰撞体,所以和Cherry的设置有点不同。
- OnTriggerEnter2D->OnCollisionEnter2D
- 代码里不能直接写collision.tag == “Enemy”。
private void OnCollisionEnter2D(Collision2D collision){if(collision.gameObject.tag == "Enemy"){Destroy(collision.gameObject);}}
该函数为内置的函数,意为:当碰到2D碰撞体时执行
但现在这个代码只是实现了当Player碰到敌人时,敌人消失。
为了实现“踩到敌人将敌人消灭”我的判断条件是当Player的动画状态是falling时…判断条件不唯一,根据需要来
如果不是falling的状态则做出另外的反应(代码省略)
private void OnCollisionEnter2D(Collision2D collision){//只有在下落的时候if(anim.GetBool("isFalling")){//踩到敌人if (collision.gameObject.tag == "Enemy"){//敌人才会消失Destroy(collision.gameObject);//踩完后垫着敌人小跳一下rb.velocity = new Vector3(rb.velocity.x, jumpforce * Time.deltaTime);anim.SetBool("isJumping", true);}}else{//触发别的效果}}
更多推荐
Unity2D学习笔记Day8:添加敌人——踩到敌人时消灭(补8.15)
发布评论