首页 > 其他分享 >在unity中被攻击时无敌的设置

在unity中被攻击时无敌的设置

时间:2024-07-10 18:28:20浏览次数:20  
标签:状态 render isInvincible 攻击 无敌 normalColor unity public

public class Invincible : MonoBehaviour
 { public SpriteRenderer render;
 public Color normalColor;
 public Color flashColor; 
public int duration;
 public bool isInvincible;
public IEnumerator SetInvincibility()
{
    isInvincible = true;

    for (int i = 0; i < duration; i++)
    {
        yield return new WaitForSeconds(0.1f);
        render.color = flashColor;
        yield return new WaitForSeconds(0.1f);
        render.color = normalColor;
    }

    isInvincible = false;
}
}
这段代码定义了一个名为 Invincible 的 MonoBehaviour 类,该类用于管理角色或物体的无敌状态效果。
分析代码功能:
1.
变量定义:
2.
public SpriteRenderer render;:用于引用角色或物体的 SpriteRenderer 组件,可以控制其颜色。
public Color normalColor; 和 public Color flashColor;:定义了两种颜色,分别表示正常状态下的颜色和闪烁状态下的颜色。
public int duration;:表示无敌状态的持续时间,以整数形式表示持续的帧数或秒数。
public bool isInvincible;:表示当前是否处于无敌状态的标志。
3.
方法 SetInvincibility():
4.
这是一个协程方法(Coroutine),用于实现无敌状态的闪烁效果。
在方法开始时,将 isInvincible 设置为 true,表示角色开始无敌状态。
使用 for 循环来控制无敌状态的持续时间,每次循环代表一个闪烁周期。
在循环中,通过 yield return new WaitForSeconds(0.1f); 实现每隔0.1秒执行一次以下操作:
将 render.color 设置为 flashColor,即闪烁状态的颜色。
再次等待0.1秒后,将 render.color 设置为 normalColor,即恢复到正常状态的颜色。
循环结束后,将 isInvincible 设置为 false,表示无敌状态结束。
使用场景和注意事项:

使用场景:玩家角色在受到攻击后进入短暂的无敌状态。在这种状态下,角色可以闪烁来显示无敌状态的持续时间,并在结束后恢复正常状态。


注意事项:

确保在使用该脚本的游戏对象上,正确设置 render 变量以引用正确的 SpriteRenderer 组件。
normalColor 和 flashColor 变量需要在使用前进行适当的赋值,以确保闪烁效果能正确显示。
duration 变量应根据实际需要设置,以控制无敌状态的持续时间。
由于 SetInvincibility() 是协程方法,调用时应使用 StartCoroutine() 方法来启动协程,例如在受到攻击时调用以触发无敌状态。

标签:状态,render,isInvincible,攻击,无敌,normalColor,unity,public
From: https://blog.csdn.net/2301_80679764/article/details/140331401

相关文章

  • Unity入门之重要组件和API(4) : Input
    前言Input类主要处理用户输入设备相关操作;输入设备包括鼠标、键盘、触屏、手柄、陀螺仪(重力感应)。1.鼠标1.1鼠标在屏幕的位置print(Input.mousePosition);1.2检测鼠标输入0-左键1-右键2-中键if(Input.GetMouseButtonDown(0)){ print("鼠标按下");}if(Input......
  • 远程线程注入的英文全称是 Remote Thread Injection,简称通常是 RTI。远程线程注入是一
    远程线程注入的英文全称是RemoteThreadInjection,简称通常是RTI。远程线程注入(RemoteThreadInjection)是一种利用操作系统的特性,在一个进程的上下文中执行代码的技术。它通常涉及以下基本步骤和原理:获取目标进程句柄:首先,注入进程需要获取目标进程的句柄(handle),这可以通过......
  • 23、Django-CSRF跨站伪造请求攻击
     配置:1、在settings.py中确认MIDDLEWARE中确保--django.middleware.csrf.CsrfViewMiddleware打开2、在模板中、form标签下添加如下标签:--{%csrf_token%}#这个就是页面中的暗号 案例views.py-------------------------------------------------......
  • 暑期课程学一学XSS攻击,以及开源项目
    XSS存储型本文主要是使用vulstudy直接搭建的漏洞环境,是其中的DVWA。然后随手记一个反弹shell的工具反弹shell工具。原理存储型XSS,也叫持久型XSS,主要是将XSS代码发送到服务器(不管是数据库、内存还是文件系统等。),然后在下次请求页面的时候就不用带上XSS代码了。最典型的就是留言......
  • 生产实习--启明星辰 第四天(Web网络安全基础知识,sql注入,xss攻击,csrf与ssrf,xxe攻击,未授
    web安全的基础知识基本定义Web安全,也称为网络安全或在线安全,是指保护网站、网页和Web服务免受各种威胁和攻击的技术和实践。这些威胁可能来自恶意软件、网络攻击、数据泄露、身份盗窃、服务中断等。Web安全的目标是确保Web应用程序和用户数据的安全、完整和可用性。一般流程......
  • 生产实习--启明星辰 第四天(实操关于CC攻击以及查看摄像头)
    CC攻击原理:CC(ChallengeCollapsar,挑战黑洞)攻击是DDoS攻击的一种类型,使用代理服务器向受害服务器发送大量貌似合法的请求。环境:KaliLinux,siege工具具体步骤:首先,我们打开虚拟机kalilinux,打开命令行,输入aptinstallsiege下载我们所需要的工具。之后利用命令:siege-c并......
  • Unity实现安卓App预览图片、Pdf文件和视频的一种解决方案
    一、问题背景最近在开发app项目,其中有个需求就是需要在app软件内显示图片、pdf和视频,一开始想的解决方案是分开实现,也就是用Image组件显示图片,找一个加载pdf的插件和播放视频的插件,转念一想觉得太麻烦了,于是就想着看能不能想电脑浏览器打开图片、pdf和视频一样直接加载显示......
  • 跨站请求伪造(CSRF)攻击原理及预防手段
    1、什么是跨站请求伪造?CSRF(Cross-siteRequestForgery,跨站请求伪造)攻击是一种常见的Web攻击,它利用用户在登录某个网站后的有效session来发送恶意请求。攻击者通过引导用户访问恶意网站,将用户的数据提交到目标网站,欺骗目标网站相信该请求是用户发送的。CSRF攻击的关键是攻击者可......
  • 基于剪枝技术和鲁棒蒸馏融合的轻量对抗攻击防御方法
    对抗训练是一类常用的对抗攻击防御方法,其通过将对抗样本纳入训练过程,从而有效抵御对抗攻击。然而,对抗训练模型的鲁棒性通常依赖于网络容量的提升,即对抗训练所获得的网络为防御对抗攻击而大幅提升网络的模型容量,对其可用性造成较大约束。为解决以上问题,提出一种基于剪枝技术......
  • 【Unity】关于IDisposable / 托管资源和非托管资源
    背景最近在做后台快捷键的功能,当应用不被聚焦时,也需要响应快捷键的输入。于是就用到了Win32API里的系统钩子,系统钩子会用到IntPtr去记录hookID,这些资源都是非托管资源,绕过了C#的内存管理系统。在网上搜索了腾讯云社区里关于GlobalKeyBoardHook的文章[1]后作用IDisposable是一......