参考:
秦无邪OvO的个人空间_哔哩哔哩_Bilibili秦无邪OvO,独立游戏开发者/美术/编曲;秦无邪OvO的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。
https://space.bilibili.com/335835274?from=search&seid=1189297610179171630&spm_id_from=333.337.0.0
【Unity2D】实现人物攻击动画以及代码展示_dangoxiba的博客-CSDN博客
【Unity2D】实现人物攻击动画以及代码展示_dangoxiba的博客-CSDN博客
有空了解我上一篇的文章
学习内容:
首先我们把画好的Enemy动画帧给导出来
(记得把背景层给关了成透明的)

此时我们在unity中将每一帧切割出来(我是32*32),然后把第一张作为游戏对象,把1-3作为Idle的Animation,4—6作为Attack

再为游戏对象添加一个PolycanCollider2D的组件画好区域
代码部分:我们创建一个叫Enemy的抽象类,用来给其它Enemy调用(如伤害和血量等)
using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
public abstract class Enemy : MonoBehaviour
 {
     public int health;
     public int damage;
     public void Start()
     {
         
     }
    
     public void Update()
     {
         if(health <= 0)
         {
             Destroy(gameObject);
         }
     }
     public void TakeDamage(int damage)
     {
         health -= damage;
     }
 }
 并创建一个EnemyWenZi继承Enemy
using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
public class EnemyWenZi : Enemy
 {
     // Start is called before the first frame update
    public void Start()
     {
         base.Start();
     }
    // Update is called once per frame
    public void Update()
     {
         base.Update();
     }
 }
 同时在PlayerAttack的脚本也需要加一个碰撞检测的方法 
private void OnTriggerEnter2D(Collider2D other)
     {
         if (other.gameObject.CompareTag("Enemy"))
         {
             other.gameObject.GetComponent<Enemy>().TakeDamage(damage);
         }
     }
学习时间:
不要忘记添加新建一个Tag叫Enemy给wenzi,然后设置好damage,health的参数

上面就完成了一个敌人并且能击杀
学习产出:
膨胀检测private void OnTriggerEnter2D(Collider2D other)
标签检测if (other.gameObject.CompareTag("Enemy"))
继承用abstract,并将造成伤害的方法TakeDamage()公共化。
在碰撞检测里即可调用其它脚本的TakeDamge()









