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

news/2024/9/23 5:05:51/

     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/news/1448742.html

相关文章

开源相机管理库Aravis学习——pixel format编码规则

开源相机管理库Aravis学习——pixel format编码规则 前言前置知识PixelFormatBpp 编码规则源码分析分类标准 补充ARV_PIXEL_FORMAT_BIT_PER_PIXEL 参考文章 前言 在学习Aravis官方例程的时候&#xff0c;有这么一个函数&#xff1a;arv_camera_get_pixel_format&#xff0c;它…

泰勒创造力达到顶峰?(上)

hello,大家好&#xff01;今天看一篇经济学人的一篇评论&#xff0c;说的是泰勒斯威夫特当前的创造力。经济学人总是语不惊人死不休&#xff0c;看看它对这位音乐天才做了怎样的评价。 事先声明哈&#xff0c;本文就是一种英语学习类讲述&#xff0c;没带任何个人色彩&#xff…

LeetCode 198—— 打家劫舍

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 此题使用动态规划求解&#xff0c;假设 d p [ i ] [ 0 ] dp[i][0] dp[i][0] 代表不偷窃第 i i i 个房屋可以获得的最高金额&#xff0c;而 d p [ i ] [ 1 ] dp[i][1] dp[i][1] 代表偷窃第 i i i 个房屋可以获…

windows ubuntu sed,awk,grep篇,6.sed 保持空间和模式空间命令

目录 41.用保持空间替换模式空间(命令 x) 42.把模式空间的内容复制到保持空间(命令 h) 43.把模式空间内容追加到保持空间(命令 H) 44.把保持空间内容复制到模式空间(命令 g) 45.把保持空间追加到模式空间(命令 G) Sed 有两个内置的存储空间&#xff1a; z 模式空间:如你所知&…

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测(Matlab)

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09; 目录 SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09;预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现MFO-CNN…

利用STM32实现语音识别功能

引言 随着物联网和智能设备的普及&#xff0c;语音识别技术正逐渐成为用户交互的主流方式之一。 STM32微控制器具备处理高效率语音识别算法的能力&#xff0c;使其成为实现低成本、低功耗语音交互系统的理想选择。 本教程将介绍如何在STM32平台上开发和部署一个基础的语音识…

c++多文件,cmakelist编写简单示例

记录下c多文件cmakelist编写流程&#xff1a; 目录结构大致如下&#xff1a; 1、swap.h #include <iostream> #include <vector> #include <string> using namespace std;void swap(int *a,int *b); 2、swap.cpp #include "swap.h"void swap(…

全面解析Unity至Unreal的项目迁移流程

引言 在游戏开发领域&#xff0c;Unity和Unreal Engine都是顶尖的选择&#xff0c;各自带有独特的优势。对于追求更高图形质量和更强大物理模拟的开发团队而言&#xff0c;将项目从Unity迁移到Unreal可能是一个值得考虑的选择。本文将详细介绍整个迁移流程&#xff0c;帮助开发…