Unity-角色互动加分显示的实现

2023-10-26

角色互动加分显示的实现

思路:在角色的脚本里对应该加分的地方用变量统计分数,同时再创建一个ui对象,然后用委派事件获取角色的得分。

在角色的脚本里设置分数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3LrnKCuu-1680091056097)(C:/Users/86188/AppData/Roaming/Typora/typora-user-images/image-20230329175238050.png)]

   //基础分数
   public  int stepPoint;
   //总共得到了多少分数
   private int pointResult;
   //角色互动加分的函数
    public void Jump(InputAction.CallbackContext context)
   {
      //如果角色短跳触发成功,加分
      if (dir == Direction.Up && context.performed && !isJump)
      {
         pointResult += stepPoint;
      }
   }
   

布置页面以及编译对应的脚本

页面如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HXPEmiQv-1680091056098)(C:/Users/86188/AppData/Roaming/Typora/typora-user-images/image-20230329181422222.png)]

创建个新的脚本挂载到Canvas Text里:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UiManager : MonoBehaviour
{
    public Text screenText;

    void Start()
    {
        screenText.text = "0";
    }
}

把之前创建的文字丢进去。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nB8OSokL-1680091056099)(C:/Users/86188/AppData/Roaming/Typora/typora-user-images/image-20230329190606491.png)]

显示数字的控制也完成了!

使用事件委托将两者连接

创建委托脚本:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NT3VuvZC-1680091056100)(C:/Users/86188/AppData/Roaming/Typora/typora-user-images/image-20230329190925045.png)]

脚本如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

public class EventHander : MonoBehaviour
{
    //委托的事件
    public static event Action<int> GetPointEvent;
    //触发委托事件的函数
    public static void CallGetPointEvent (int point) 
    {   
        //如果委托有接收方就提醒他委托开始,并且把值给他
        GetPointEvent ? .Invoke(point);
    }
}

青蛙(玩家控制)需要建立委托:

   //基础分数
   public  int stepPoint;
   //总共得到了多少分数
   private int pointResult;
   //角色互动加分的函数
    public void Jump(InputAction.CallbackContext context)
   {
      //如果角色短跳触发成功,加分
      if (dir == Direction.Up && context.performed && !isJump)
      {
         pointResult += stepPoint;
         EventHander.CallGetPointEvent(pointResult);  //发起委托
      }
   }

界面部分接收委托:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class UiManager : MonoBehaviour
{
    public Text scoreText;

    void Start()
    {
        screenText.text = "0";
    }
    //脚本刚被调用时使用
    private void OnEnable() 
    {
        //注册
        EventHander.GetPointEvent += OnGetPointEvent;
    }
     
    //脚本不再被使用
    private void OnDisable() 
    {

    }
    
    ///<summary>
    ///接收委托传来的值
    ///</summary>
    private void OnGetPointEvent(int point)
    {
        //把传过来的值显示在屏幕
        scoreText.text = point.ToString();
    }
}

完成!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity-角色互动加分显示的实现 的相关文章

随机推荐

  • crontab定时启动scrapy爬虫

    部署到测试环境 并设置定时启动任务 通过FileZille工具 将本地的文件上传到测试服务器上面的python文件夹中 在与spider同级目录下写一个shell脚本 启动所编辑的运行爬虫文件 vi run sh 1 bin sh 2 ex
  • 修改服务器数据库名称,修改服务器数据库名称

    修改服务器数据库名称 内容精选 换一换 弹性云服务器能否ping通华为云关系型数据库实例 如果ping不通 可以查看弹性云服务器和华为云关系型数据库实例是否处于同一个虚拟私有云内 是否使用同一个安全组 如果ping不通 可以查看弹性云服务器
  • Aviator这么丝滑,怎么实现的呢?

    大家好 我是老三 在上期 里我们介绍了轻量级规则引擎AviatorScript的基本用法和一些使用案例 这期我们来研究一下 这么丝滑的规则脚本是怎么实现的 概览 我们先来回顾一个简单的例子 Test public void test 表达式
  • element 模态框内,表单编辑回填的值在关闭时,表单内容无法正确重置问题

    element 表单使用 this refs formName resetFields 进行数据重置 但重置的初始数据是基于表单第一次渲染时的数据为模板 由于点击编辑时 模态框显示与表单内容渲染是同时进行 所以 el form 就认为回填值
  • STM32--TIM定时器(3)

    文章目录 输入捕获简介 频率测量 输入捕获通道 输入捕获基本结构 PWMI的基本结构 输入捕获模式测量PWM频率和占空比 代码 编码器接口 正交编码器 工作模式 接口基本结构 TIM编码接口器测速 代码 输入捕获简介 输入捕获IC Inpu
  • 传奇服务器文件组成,【教程】传奇服务端(版本)的结构以及重要文件功能的概述-A02...

    第A02课 传圌奇私圌服服圌务端 版本 的结构以及重要文件功能的概述 有很多新人根本不了解传圌奇的结构 学习的时候就比较困难 所以才设置了这么一课 以下是服圌务端主要文件位置与用途
  • Qt实现多线程编程的两种方式

    Qt实现多线程编程的两种方式 方式一 继承自QThread类 覆写run函数 此实现方法只有run函数内的代码是运行在子线程内 代码示例 ifndef QDEMOTHREAD H define QDEMOTHREAD H include
  • 自定义控件MeasureSpecs与measure的理解

    MeasureSpace 是android中父view传递给子view的用来描述对子 view布局需求的数据类型 也就是说父布局把它希view的大小以及变化的尺度分装在这个类里 而子view的measure 方法拿到这个数值 则会根据这个数
  • 【基于机器学习的全国降水量预测分析可视化-哔哩哔哩】 https://b23.tv/RsGfqeD

    基于机器学习的全国降水量预测分析可视化 哔哩哔哩 https b23 tv RsGfqeD https b23 tv RsGfqeD
  • Python脚本报错AttributeError: ‘module’ object has no attribute’get’解决方法

    发现代码都没有错 后来是改成这样 def pprint name var get print name var StringVar Label root text 姓名 font 微软雅黑 20 grid inputStr1 Entry r
  • RabbitMQ消息队列(转)

    转自 https www jianshu com p 79ca08116d57 关于消息队列 从前年开始断断续续看了些资料 想写很久了 但一直没腾出空 近来分别碰到几个朋友聊这块的技术选型 是时候把这块的知识整理记录一下了 市面上的消息队列
  • darknet-yolov4编译

    在个人win10上运行darknet yolov4 准备 电脑msi显卡 gtx1050ti 4g 驱动451以上 内存金士顿8g 必须项准备 先安装vs2017 必须勾选c 再cuda 我装了cuda10 0和9 2 上移环境变量 使10
  • 高级数据库总结

    总结 一 总结笔记 首先是我们会用到的几张数据表 1 学习数据库的必要性 时代迎来大数据时代 数据量的庞大已经不足以用人力来计算 为此我们需要一个软件或者一套流程来解决这个问题 那么数据库肯定是最佳选择 学点东西总是好的 2 Mysql数据
  • Netty:option和childOption参数设置说明

    转载 http www jianshu com p 0bff7c020af2 Channel配置参数 1 通用参数 CONNECT TIMEOUT MILLIS Netty参数 连接超时毫秒数 默认值30000毫秒即30秒 MAX MESS
  • [Android][设置最小(大)宽高]

    1 简介 TextView里定义的方法 据说是设置文本区域的宽高 android maxWidth 关联方法 setMaxWidth int 属性说明 设置文本区域的最大宽度 android maxHeight 关联方法 setMaxHei
  • Linux下获取ip、mac、子网掩码、广播地址信息

    get interface c include
  • 随机数算法,SQL

    SELECT FROM prizes config WHERE weight gt SELECT FLOOR RAND MAX weight FROM prizes config order by weight asc LIMIT 1 记录
  • RPM 软件包使用常见问题

    1 如何安装rpm软件包 rmp软件包的安装可以使用程序rpm来完成 执行下面的命令 rpm i your package rpm 其中your package rpm是你要安装的rpm包的文件名 一般置于当前目录下 安装过程中可能出现下面
  • SpringBoot配置文件敏感信息加密-jasypt

    使用过SpringBoot配置文件的朋友都知道 资源文件中的内容通常情况下是明文显示 安全性就比较低一些 打开application properties或application yml 比如mysql登陆密码 redis登陆密码以及第三方
  • Unity-角色互动加分显示的实现

    文章目录 角色互动加分显示的实现 在角色的脚本里设置分数 布置页面以及编译对应的脚本 使用事件委托将两者连接 角色互动加分显示的实现 思路 在角色的脚本里对应该加分的地方用变量统计分数 同时再创建一个ui对象 然后用委派事件获取角色的得分