《Unity入门案例-Tanks坦克大战》7-坦克血条

2023-11-10 01:50

本文主要是介绍《Unity入门案例-Tanks坦克大战》7-坦克血条,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

7 坦克血条

点击菜单GameObject->UI->Slider创建Slider

选中EventSystem,设置Horizontal Axis为HorzontalUI,Vertical Axis为VerticalUI

image

选中Canvas,设置Render Mode为World Space, Reference Pixels Per Unit为1

image

将Canvas拖到Tank中,使其成为Tank的子对象,相关参数设置如下

image

将Slider改名为HealthSlider,取消选择Interactable,设置Transition为None,Max Value改为100

image

在Hierarchy里面,按住Alt键点击HealthSlider前面的三角箭头

image

然后删除Handle Slide Area

同时选中HealthSlider,Background,FillArea,Fill, 点击Rect Transform里面的Sketch,按着Alt键选中右下角的水平垂直拉伸.

image

选中Background,设置Source Image为Health Wheel,Color为红色,Alpha为80

image

image

选中Fill,设置Source Image为Health Wheel,Color为绿色,Alpha为150,Image Type为Filled,Fill Method为Radial 360,Fill Origin为Left,取消选择Clockwise.

[图片上传中...(image-d0dada-1539997823498-3)]

新建Health.cs,声明float变量currentBlood为当前血值.

public float currentBlood = 100; // 当前血值

添加healthSlider显示当前血值

public Slider slider; // 血槽

为Health.cs添加TakeDamage方法

public void TakeDamage (float damage) { // 受到伤害,开始掉血

    currentBlood -= damage; // 掉血slider.value = currentBlood; // 更新血槽显示}

当坦克收到伤害,血值不断减少到小于等于0的时候,坦克播放爆炸效果和爆炸音效.

从Prefabs里面找到TankExplosion坦克爆炸效果添加到坦克上面

image

private ParticleSystem ps; // 爆炸效果

private AudioSource audioSource; // 声源

还需要添加一个爆炸音效

public AudioClip explosionAudio; // 爆炸音效

[图片上传中...(image-a2ce6e-1539997823498-1)]

在Start里面获取ps和audioSource

ps = GetComponentInChildren <ParticleSystem> (); // 获取子对象的ParticleSystem

    audioSource = GetComponent<AudioSource> (); // 获取音源

然后在血值减为0时播放爆炸效果

if( currentBlood <= 0){

        ps.transform.parent = null; // 将爆炸效果从Shell里面移出ps.Play (); // 播放爆炸效果audioSource.Play (); // 播放爆炸音效Destroy (ps.gameObject, ps.duration); // 爆炸效果播放完毕之后移出爆炸效果的gameObjectDestroy (gameObject); // 移出Shell的gameObject}

最终代码

[图片上传中...(image-fcf493-1539997823497-0)]

Health.cs

using UnityEngine;

using UnityEngine.UI;

using System.Collections;

public class Health : MonoBehaviour {

public Slider slider; // 血槽public float currentBlood = 100;  // 当前血值private ParticleSystem ps; // 爆炸效果private AudioSource audioSource; // 声源public AudioClip explosionAudio; // 爆炸音效// Use this for initializationvoid Start () {ps = GetComponentInChildren <ParticleSystem> (); // 获取子对象的ParticleSystemaudioSource = GetComponent<AudioSource> (); // 获取音源}public void TakeDamage (float damage) { // 受到伤害,开始掉血currentBlood -= damage; // 掉血slider.value = currentBlood; // 更新血槽显示if( currentBlood <= 0){ps.transform.parent = null; // 将爆炸效果从Shell里面移出ps.Play (); // 播放爆炸效果audioSource.Play (); // 播放爆炸音效Destroy (ps.gameObject, ps.duration); // 爆炸效果播放完毕之后移出爆炸效果的gameObjectDestroy (gameObject); // 移出Shell的gameObject}}

}

这篇关于《Unity入门案例-Tanks坦克大战》7-坦克血条的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/379709

相关文章

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提