Unity类银河恶魔城学习记录 17-1,2 p166 Aliments fx p167 Blackhole additional vfx

embedded/2024/9/23 6:16:28/

     Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考
此代码仅为较上一P有所改变的代码

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili

Entity.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class EntityFX : MonoBehaviour
{private SpriteRenderer sr;//定义SR组件来保持要用的组件[Header("Flash FX")][SerializeField] private Material hitMat;//要改成的材料[SerializeField] private float flashDuration;//闪光的时间private Material originalMat;//原来的材料[Header("Aliment colors")][SerializeField] private Color[] chillColor;[SerializeField] private Color[] igniteColor;[SerializeField] private Color[] shockColor;[Header("Aliment particles")][SerializeField] private ParticleSystem igniteFX;[SerializeField] private ParticleSystem chillFX;[SerializeField] private ParticleSystem shockFX;private void Start(){sr = GetComponentInChildren<SpriteRenderer>();//从子组件中拿到SR组件originalMat = sr.material;//拿到原来的材料}public void MakeTransprent(bool isClear){if (isClear)sr.color = Color.clear;elsesr.color = Color.white;}private IEnumerator FlashFX()//被打后该触发的函数{sr.material = hitMat;//修复在元素效果期间击中,颜色变红的情况Color currentColor = sr.color;sr.color = Color.white;yield return new WaitForSeconds(flashDuration);sr.color = currentColor;sr.material = originalMat;} //IEnumertor本质就是将一个函数分块执行,只有满足某些条件才能执行下一段代码,此函数有StartCoroutine调用//https://www.zhihu.com/tardis/bd/art/504607545?source_id=1001private void RedColorBlink()//使角色闪烁的函数{if (sr.color != Color.white){sr.color = Color.white;}else{sr.color = Color.red;}}private void CancelColorChange()//使角色停止闪烁的函数{CancelInvoke();//取消该 MonoBehaviour 上的所有 Invoke 调用。//https://docs.unity3d.com/cn/current/ScriptReference/MonoBehaviour.CancelInvoke.htmlsr.color = Color.white;igniteFX.Stop();chillFX.Stop();shockFX.Stop();}public void ShockFxFor(float _second){shockFX.Play();InvokeRepeating("ShockColorFx", 0, .3f);Invoke("CancelColorChange", _second);}public void ChillFxFor(float _second){chillFX.Play();InvokeRepeating("ChillColor", 0, .3f);Invoke("CancelColorChange", _second);}public void IgniteFxFor(float _second){igniteFX.Play();InvokeRepeating("IgniteColorFX", 0, .3f);Invoke("CancelColorChange", _second);}private void IgniteColorFX(){if (sr.color != igniteColor[0])sr.color = igniteColor[0];elsesr.color = igniteColor[1];}private void ShockColorFx(){if (sr.color != shockColor[0])sr.color = shockColor[0];elsesr.color = shockColor[1];}private void ChillColor(){if (sr.color != chillColor[0])sr.color = chillColor[0];elsesr.color = chillColor[1];}}


http://www.ppmy.cn/embedded/28255.html

相关文章

图像置乱加密-Arnold加密算法

置乱加密是另一种较常用的加密方法&#xff0c;现也被许多文献选用&#xff0c;置乱加密可以是以像素为单位进行全局置乱&#xff0c;该方式打乱了图像像素值的位置&#xff0c;使其图像内容失去相关性&#xff0c;达到保护的目的。也可以是以块为单位进行置乱&#xff0c;该方…

对于Servlet项目无法显示css样式

有可能你在过滤器中拦截了.css文件&#xff0c;并且你设置了响应格式导致的&#xff0c;就比如我的项目如下图所示 删除servletResponse.setContentType("text/html; charsetUTF-8");即可

3.11设计模式——Visitor 访问者模式(行为型)

意图 表示一个作用于某对象结构中的各元素的操作。它允许在不改变各元素的类的前提下定义作用于这些元素的新操作。 结构 Visitor&#xff08;访问者&#xff09;为该对象结构中ConcreteElement&#xff08;具体元素&#xff09;的每一个类声明一个Visit操作&#xff0c;该操…

javascrip对象如何区分属性和方法

在JavaScript中&#xff0c;对象是由属性和方法构成的。属性是对象的特征或状态&#xff0c;而方法是对象能够执行的动作。 属性的特点&#xff1a; 属性是对象的成员&#xff0c;用来描述对象的状态或特征。属性可以是基本数据类型&#xff08;如字符串、数字、布尔值等&…

引入classfinal maven 插件实现对jar包的加密

文章目录 概要整体流程 概要 我使用的项目为微服务项目 整体流程 明确所有需要加密的jar包&#xff1a; 可以通过maven的package指令&#xff0c;查看日志&#xff0c;后缀为jar的即为所有需要加密的jar包。 在跟pom文件的properties属性中定义classfinal maven插件的属性值…

记录浏览器打开网站拦截提示不安全解决方法

浏览器可能会因为多种原因显示“不安全”的警告,这通常是由于安全设置不当或配置错误造成的。以下是一些常见的原因和解决方法: 1. HTTPS未启用 原因:如果网站使用HTTP而不是HTTPS,浏览器可能会显示不安全的警告。 解决方法:配置SSL/TLS证书并使用HTTPS来加密数据传输…

OpenHarmony实战开发-如何实现单一手势

点击手势&#xff08;TapGesture&#xff09; TapGesture(value?:{count?:number; fingers?:number})点击手势支持单次点击和多次点击&#xff0c;拥有两个可选参数&#xff1a; count&#xff1a;声明该点击手势识别的连续点击次数。默认值为1&#xff0c;若设置小于1的非…

中国发布首个汽车大模型标准

&#x1f989; AI新闻 &#x1f680; 中国发布首个汽车大模型标准 摘要&#xff1a;中国信息通信研究院于4月28日发布了国内首个汽车大模型标准&#xff0c;标志着汽车行业正式迈向“人工智能&#xff0b;”时代。该标准包含三个核心能力域&#xff1a;场景丰富度、能力支持度…