Unity Mirror学习(一) SyncVars特性使用

官网中所说的网络对象,指的是挂了 NetworkIdentity组件的对象
官网中所说的玩家对象,指的是NetworkManager脚本上的PlayerPrefab预制体
这个概念对阅读官网文档很重要,我刚开始并不理解,走了歪路

SyncVars(同步变量)特性

1,顾名思义,只是同步变量
2,SyncVars 是从NetworkBehaviour继承的类的属性
3,从服务端同步到客户端我的理解:服务端广播消息,消息=自定义的变量
4,类继承

示例:实现服务端点击按钮,客户端做出相应事件(图片颜色变红)

在这里插入图片描述
代码部分

using Mirror;
using UnityEngine;
using UnityEngine.UI;public class SyncVarChangeColor : NetworkBehaviour
{public Image image;public Toggle toggle;[SyncVar]bool _isOn;void Start(){if (isServer)//如果是服务端{image.gameObject.SetActive(false);toggle.gameObject.SetActive(true);}else{image.gameObject.SetActive(true);toggle.gameObject.SetActive(false);}toggle.onValueChanged.AddListener((isOn) =>{_isOn = isOn;});}private void Update(){if (_isOn){image.color = Color.red;}else{image.color = Color.white;}}
}

思考:在写下这段代码时,颜色改变我放在了点击事件里,客户端没反应。我在客户端打印了同步变量_isOn的值,值是发生改变的。

SyncVar hook 钩子特性

1,钩子(hook)可以指定当同步变量(SyncVar)在客户端上更改时,要调用的函数
2,钩子(hook)方法必须具有 两个 与 自定义的同步变量(SyncVar) 相同类型的参数
3,钩子(hook)可以是虚拟方法,并在派生类中重写
4,钩子(hook)调用顺序与脚本中定义SyncVar的顺序相同

对上述代码进行修改

using Mirror;
using UnityEngine;
using UnityEngine.UI;public class SyncVarChangeColor : NetworkBehaviour
{public Image image;public Toggle toggle;[SyncVar(hook = nameof(ChangeColor))]bool _isOn;void Start(){if (isServer){image.gameObject.SetActive(false);toggle.gameObject.SetActive(true);}else{image.gameObject.SetActive(true);toggle.gameObject.SetActive(false);}toggle.onValueChanged.AddListener((isOn) =>{_isOn = isOn;});}void ChangeColor(bool oldOn, bool newOn)//钩子(hook)方法 必须 要有两个参数{if (_isOn)image.color = Color.red;elseimage.color = Color.white;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/186473.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

北斗卫星为油气行业发展注入新动力

北斗卫星为油气行业发展注入新动力 北斗卫星是中国自主研发的卫星导航系统,在全球范围内具有广泛应用。随着科技的进步和社会的发展,北斗卫星的智慧应用也逐渐在各行各业中崭露头角。特别是在油气行业,北斗卫星的智慧应用发挥了非常重要的作用…

华为云,阿里云,腾讯云 安全组配置规则

1.安全组常用端口 端口服务说明21FTPFTP服务所开放的端口,用于上传、下载文件。22SSHSSH端口,用于通过命令行模式或远程连接软件(例如PuTTY、Xshell、SecureCRT等)连接Linux实例。23TelnetTelnet端口,用于Telnet远程登…

ps 让图片附着在文字上

按住alt在文字与图片图片中间,文字在图片下面)

企业电子招标采购系统源码之从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理

功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所…

WordPress页脚配置备案号

进入后台管理页面 后台管理页面地址一般是&#xff1a;域名/wp-admin 在指定位置加入代码 点击外观 -> 主题文件编辑器 在右侧的文件中选择 footer.php,[注意&#xff1a;上方的主题需要是你自己选择的对应的主题]在 </footer>标签这一行的上一行中加入代码 <di…

2023年云计算的发展趋势如何?

混合云的持续发展&#xff1a;混合云指的是将公有云和私有云进行结合&#xff0c;形成一种统一的云计算环境。随着企业对数据隐私和安全性的要求越来越高&#xff0c;以及在数据存储和处理方面的需求不断增长&#xff0c;混合云正在逐渐成为主流。预计未来混合云将会继续保持高…

金融工作怎么做?低代码如何助力金融行业

10月30日至31日&#xff0c;中央金融工作会议在北京举行。金融是国民经济的“血脉”&#xff0c;是国家核心竞争力的重要组成部分。会议指出&#xff0c;党的十八大以来&#xff0c;在党中央集中统一领导下&#xff0c;金融系统有力支撑经济社会发展大局&#xff0c;坚决打好防…

react-app-env.d.ts是什么?

react-app-env.d.ts这个文件是使用CRA脚手架生成react项目时自动生成的&#xff0c;在平时的开发过程中看到这个文件就会感觉很疑惑&#xff0c;出于好奇心&#xff0c;在网上查找资料&#xff0c;得出下文 前置知识 这个是一个类型声明文件 它的内容很短&#xff0c;就一行…

bootstrap-fileinput拦截文件上传处理失败,根据后台返回数据处理

bootstrap-fileinput如何拦截后台数据&#xff0c;自定义处理业务逻辑 需要后台返回error字段&#xff0c;失败示例&#xff0c;注意&#xff1a;error必须有内容&#xff0c;不然默认也是成功&#xff0c; bootstrap-fileinput失败验证只需要 error 字段&#xff0c;其他附加…

腾讯云真的是良心云!服务器带宽、CPU、硬盘IO性能大揭秘!

本文将通过对腾讯云服务器CVM S5 4核配置的云服务器进行测试&#xff0c;来评估其在带宽、CPU和硬盘IO性能方面的表现。 在云服务器的并发处理中&#xff0c;带宽是一个重要的因素。经过测试&#xff0c;腾讯云的带宽网络表现非常出色&#xff0c;能够跑满带宽&#xff0c;同时…

R语言和jsonlite库编写代码示例

R语言和jsonlite库来下载的程序。 r # 导入jsonlite库 library(jsonlite) # 设置代理主机和端口 proxy_host <- "" proxy_port <- # 使用httr库创建一个对象 proxy <- create_proxy(proxy_host, proxy_port) # 使用httr库的GET方法下载网页内容 url <…

C#上位机序列10: Winform上位机通用框架

C#上位机序列1: 多线程&#xff08;线程同步&#xff0c;事件触发&#xff0c;信号量&#xff0c;互斥锁&#xff0c;共享内存&#xff0c;消息队列&#xff09; C#上位机序列2: 同步异步(async、await) C#上位机序列3: 流程控制&#xff08;串行&#xff0c;并行&#xff0c…

如何根据不同仪器选择适合的电源模块?

BOSHIDA 如何根据不同仪器选择适合的电源模块&#xff1f; 在实验室、工业生产等场合中&#xff0c;电源模块是必不可少的设备之一。电源模块的作用是将输入电能转换成所需要的电压和电流&#xff0c;为各种仪器设备提供恰当的电源。不同的仪器设备对电源的要求不同&#xff0c…

使用Plsql+oracle client 连接 Oracle数据库

2011年入职老东家X煤集团的时候&#xff0c;在csnd上写了一篇blog&#xff0c;题目叫“什么是ERP”&#xff0c;从此跳入DBA了这个烂坑&#xff0c;目前公司的数据库一部分是Oracle&#xff0c;另一部分是MySQL的&#xff0c;少量MSSQL&#xff0c;还需要捡起来一部分&#xff…

腾讯云88,阿里云99,现在都这么卷了吗?!

你是否曾经想过&#xff0c;云服务器的价格竟然可以如此亲民&#xff1f;现在&#xff0c;腾讯云和阿里云竟然都推出了超低价位的云服务器&#xff0c;只要88元和99元&#xff01;这让我们这些自媒体人、创业者、开发者等都感到非常惊喜。可以看一下配置和价格&#xff1a; 可…

内存卡数据恢复,5 个免费好用的数据恢复方法工具全解

丢失了 SD 卡中的一些重要照片或文档&#xff0c;并且不知道如何恢复&#xff1f;好吧&#xff0c;别担心&#xff01;&#xff01;以下是一些适用于 Windows 的最佳 SD 卡恢复工具&#xff0c;可增加您检索意外删除、丢失或丢失数据的机会。 什么是 SD 卡数据恢复软件&#xf…

oracle11G在linux环境下的卸载操作

1.使用SQL*PLUS停止数据库 [oracleOracleTest oracle]$ sqlplus / as sysdba SQL> shutdown [immediate] SQL> exit2.停止Listener [oracleOracleTest oracle]$ lsnrctl stop3.停止HTTP服务 [rootOracleTest /root]# service httpd stop4.用su或者重新登录到root(如想…

iEnglish马铁鹰:智能教育塑造未来学习新范式

随着云计算、大数据、物联网、人工智能和区块链等新一代智能技术在教育中的广泛应用&#xff0c;教育正日益迈向智能时代。智能化和智慧化将深刻改变未来教育形式和学习方式&#xff0c;为教育带来更多可能性和机遇。根据教育部统计数据&#xff0c;截至2022年底&#xff0c;中…

泛微E-Mobile 6.0命令执行漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 一、漏洞原理 泛微E-Mobile 6.0存在命令执行漏洞的问题&#xff0c;在…

HarmonyOS开发:UI开展前的阶段总结

前言 关于HarmonyOS&#xff0c;陆陆续续总结了有14篇的文章&#xff0c;大家可以发现&#xff0c;没有一篇是关于UI相关的&#xff0c;不是自己没有分享的打算&#xff0c;而是对于这些UI而言&#xff0c;官方都有着一系列的文档输出&#xff0c;如果我再一一的分享&#xff0…