《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 Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al