项目02《游戏-14-开发》Unity3D

基于      项目02《游戏-13-开发》Unity3D      ,

任务:战斗系统之击败怪物与怪物UI血条信息

using UnityEngine;
public abstract class Living : MonoBehaviour{
    protected float hp;
    protected float attack;
    protected float define;
    protected bool isDead;
    public float Hp {
        get {
            return hp;
        }
        set {
            hp = value;
        }
    }
    public Animator Anim { get; set; }
    public virtual void onHurt(float attack) {
        float lost = attack - this.define;
        if (lost <= 0)
            return;
        this.hp -= lost;
        if (this.hp < 0) {
            this.isDead = true;
            //播放死亡动画
            Anim.SetTrigger("DeathTrigger");
            if (isDead == true)
                return;
        }
    }
    protected void Start(){
        InitValue();
    }
    protected virtual void InitValue() {
        this.hp = 10;
        this.attack = 3;
        this.define = 1;
        this.isDead = false;
        Anim = GetComponent<Animator>();
    }
}

using UnityEngine;
public class Enemy : Living{
    protected override void InitValue(){
        this.hp = 30;
        this.attack = 3;
        this.define = 1;
        this.isDead = false;
        Anim = GetComponent<Animator>();
    }
}

using UnityEngine;
public class Weapon : MonoBehaviour{
    float damage = 3f;
    public Animator Anim { get; set; }
    bool isdead;
    void Awake()
    {
        isdead = false;
        Anim = GetComponent<Animator>();
    }
    void OnTriggerEnter(Collider other)
    {
        Debug.Log("怪物碰撞武器");
        if (other.CompareTag("Enemy"))
        {
            Enemy enemy = other.GetComponent<Enemy>();
            if (enemy != null)
            {
                if (enemy.Hp <= 0)
                {
                    if (isdead == true)
                        return;
                    isdead = true;
                    enemy.GetComponent<Animator>().SetTrigger("DeathTrigger");
                }
                enemy.Hp -= damage;
                enemy.GetComponent<Animator>().SetTrigger("HitTrigger");
            }
        }
    }
}

using UnityEngine;
using UnityEngine.UI;
public class EnemyInfo : MonoBehaviour{
    Enemy enemy;
    Slider health1;
    void Start(){
        var enemyObj = GameObject.FindGameObjectWithTag("Enemy");
        enemy = enemyObj.GetComponent<Enemy>();
        health1 = GameObject.Find("H/Slider3").GetComponent<Slider>();
    }
    void Update(){
        if (health1 != null)
            health1.value = enemy.Hp;
    }
}

using UnityEngine;
public class Cage : MonoBehaviour{
    private GameObject uiPrefabInstance; //敌人信息实例化UI
    void OnTriggerEnter(Collider other){
        Debug.Log("角色进入牢笼");
        if (other.CompareTag("Player")){
            GameObject prefab = Resources.Load<GameObject>("Prefabs/Panel/Package/EnemyInfo");
            uiPrefabInstance = Instantiate(prefab, new Vector3(0f, -100, 0f), Quaternion.identity);
            uiPrefabInstance.transform.SetParent(GameObject.Find("Canvas").transform, false);
        }
    }
    private void OnTriggerExit(Collider other){
        if (other.CompareTag("Player"))
            GameObject.Find("EnemyInfo(Clone)").gameObject.SetActive(false);
    }
}

实现效果:

进入牢笼后,

退出牢笼后,

击打怪物,

当血量减为0,

离开牢笼,

End.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2780527.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

黑马程序员——html css基础——day10day11day12——小兔鲜儿

目录&#xff1a; 底部盒子制作 底部服务模块制作底部帮助模块底部版权模块banner-轮播图 HTML结构CSS样式banner图片模块 htmlcssbanner小圆点制作 htmlcssbanner-侧导航 HTML结构CSS样式新鲜好物-hd HTML结构CSS样式新鲜好物-bd HTML结构CSS样式溢出文字显示省略号人气推荐 …

TikTok:短视频时代的崛起

导言&#xff1a; TikTok&#xff0c;作为一款全球短视频社交应用&#xff0c;正风靡全球&#xff0c;引领着数字娱乐的新潮流。其简洁的用户界面、创意无限的短视频内容&#xff0c;以及强大的社交互动功能&#xff0c;使其成为全球数以亿计的用户喜爱的平台。 TikTok的特点&a…

特征工程:特征构建

目录 一、前言 二、正文 Ⅰ.分类特征重新编码 ①分类特征 ②离散特征 ③多标签类别编码 Ⅱ.数值特征重新编码 ①多项式 ②多个变量的多项式特征 Ⅲ.文本数据的特征构建 ①文本词频条形图 ②词袋模型 ③TF-IDF矩阵 三、结语 一、前言 特征工程中的特征构建的主要目的是生…

分享88个时间日期JS特效,总有一款适合您

分享88个时间日期JS特效&#xff0c;总有一款适合您 88个时间日期JS特效下载链接&#xff1a;https://pan.baidu.com/s/16UhIi4d42AkUN5uj2oGFFw?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;…

LeetCode Python - 10.正则表达式匹配

文章目录 题目答案运行结果 题目 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符 ‘*’ 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c;是要涵盖 整个 字符串 s的&#xff0c;而不是部分…

Linux中pipe管道操作

管道的读写操作&#xff1a; 读操作&#xff1a; ​​​有数据&#xff1a;read正常读&#xff0c;返回读出的字节数无数据&#xff1a;1 写段全部关闭&#xff1a;read解除阻塞&#xff0c;返回0&#xff0c;相当于文件读到了尾部 2 写段没有全部关闭&#xf…

漂亮不是工业HMI的追求?我劝你,这个想法要变了

对于工业HMI&#xff08;Human Machine Interface&#xff09;来说&#xff0c;漂亮并不是唯一的追求&#xff0c;但它仍然是一个重要的方面。在工业环境中&#xff0c;HMI的设计需要考虑到使用者的工作效率和安全性&#xff0c;因此功能性和易用性是首要考虑的因素。然而&…

分享89个时间日期JS特效,总有一款适合您

分享89个时间日期JS特效&#xff0c;总有一款适合您 89个时间日期JS特效下载链接&#xff1a;https://pan.baidu.com/s/127_keimOfy_AKrCNT4TQNA?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;…

Python 中的异步编程:提升程序性能的利器

随着互联网应用的迅猛发展&#xff0c;越来越多的应用程序需要处理大量的并发请求。传统的同步编程模型在处理大量并发请求时往往效率低下&#xff0c;造成程序响应速度变慢。为了解决这个问题&#xff0c;Python 提供了异步编程这一强大的工具&#xff0c;可以在单线程环境下实…

JavaScript资源加载:onload,onerror

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 资源加载 是 web 开发中的一个重要概念&#xff0c;指的是浏览器加载…

CSP-202312-2-因子化简(质数筛法)

CSP-202312-2-因子化简 一、质数筛法 主流的质数筛法包括埃拉托斯特尼筛法&#xff08;Sieve of Eratosthenes&#xff09;、欧拉筛法&#xff08;Sieve of Euler&#xff09;、线性筛法&#xff08;Linear Sieve&#xff09;等。这些算法都用于高效地生成一定范围内的质数。 …

C++ Qt框架开发| 基于Qt框架开发实时成绩显示排序系统(1)

目标&#xff1a;旨在开发一个用户友好的软件工具&#xff0c;用于协助用户基于输入对象的成绩数据进行排序。该工具的特色在于&#xff0c;新输入的数据将以红色高亮显示&#xff0c;从而直观地展现出排序过程中数据变化的每一个步骤。 结果展示&#xff1a; 本程序是一个基于…

aardio 编辑GUI界面,调用 python 脚本示例

aardio 中调用 python 的方法有两种&#xff0c;py3 和 process.python 模块 py3 模块&#xff1a;如果经常要拿到python返回的值或从aardio中传数据给python去处理&#xff0c;aardio和python的交互比较多的话&#xff0c;可以考虑使用py3模块&#xff0c;缺点是&#xff1a;p…

java学习07---综合练习

飞机票 1.需求: 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。 按照如下规则计算机票价格&#xff1a;旺季&#xff08;5-10月&#xff09;头等舱9折&#xff0c;经济舱8.5折&#xff0c;淡季&#xff08;11月到来年4月&#xff09;头等舱7…

Linux笔记之xhost +和docker的关系以及GDK_SCALE和GDK_DPI_SCALE详解

Linux笔记之xhost 和docker的关系以及GDK_SCALE和GDK_DPI_SCALE详解 ——2024-02-11 code review! 文章目录 Linux笔记之xhost 和docker的关系以及GDK_SCALE和GDK_DPI_SCALE详解xhost 的作用xhost 与 Docker 的关系 -e GDK_SCALE 和 -e GDK_DPI_SCALE详解GDK_SCALEGDK_DPI_SC…

ClickHouse--03--数据类型

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 数据类型1. Int2.FloattoFloat32(...) 用来将字符串转换成 Float32 类型的函数toFloat64(...) 用来将字符串转换成 Float64 类型的函数 3.DecimaltoDecimal32(value…

学习Android的第十天

目录 Android CheckBox 复选框 获得选中的 CheckBox 的值 自定义点击效果 改变文字与选择框的相对位置 修改文字与选择框的距离 Android ToggleButton 开关按钮 改变 ToggleButton 的状态和文本 Android Switch 开关 改变 Switch 的状态和文本 Android CheckBox 复选框…

Python 3 中使用 pandas 和 Jupyter Notebook 进行数据分析和可视化

简介 Python 的 pandas 包用于数据操作和分析&#xff0c;旨在让您以直观的方式处理带标签或关联数据。 pandas 包提供了电子表格功能&#xff0c;但由于您正在使用 Python&#xff0c;因此它比传统的图形电子表格程序要快得多且更高效。 在本教程中&#xff0c;我们将介绍如…

深入解析大型数据中心云平台的网络技术与实践

最简单的总结 SDN主流选择了OverLay。虚拟集群的规模(非物理机所能比拟) 使得Vxlan的组播传播&#xff08; 虚拟机构成的集群包含的 MAC 地址数量往往多一两个数量级 MAC地址表 &#xff09;对网络设备性能要求巨大(你不可能每个交换机都买核心交换机一样的配置吧&#xff09;…

ZigBee学习——在官方例程实现组网

✨Z-Stack版本&#xff1a;3.0.2 ✨IAR版本&#xff1a;10.10.1 ✨这篇博客是在善学坊BDB组网实验的基础上进行完善&#xff0c;并指出实现的过程中会出现的各种各样的问题&#xff01; 善学坊教程地址&#xff1a; ZigBee3.0 BDB组网实验 文章目录 一、基础工程选择二、可能遇…