Unity Mirror学习(二) Command特性使用

news2024/11/27 20:29:43

Command(命令)特性
1,修饰方法的,当在客户端调用此方法,它将在服务端运行(我的理解:客户端命令服务端做某事;或者说:客户端向服务端发消息,消息=方法)
2,默认只能从玩家对象发送命令
requiresAuthority=false绕过权限检查,这样就可以从任意网络对象上发送命令

示例:客户端点击按钮,服务端图片变红

在这里插入图片描述
从玩家对象发送命令

using Mirror;
using UnityEngine;
using UnityEngine.UI;

public class CommandTest : NetworkBehaviour
{
    public Image image;
    public Toggle toggle;
    void Start()
    {
        image = GameObject.Find("Image").GetComponent<Image>();
        toggle = GameObject.Find("Toggle").GetComponent<Toggle>();


        if (isServer)
        {
            toggle.gameObject.SetActive(false);
            image.gameObject.SetActive(true);
        }
        else
        {
            toggle.gameObject.SetActive(true);
            image.gameObject.SetActive(false);
        }

        toggle.onValueChanged.AddListener((isOn) =>
        {
            ChangeColor(isOn);
        });
    }


    [Command]
    void ChangeColor(bool isOn)
    {
        if (isOn)
            image.color = Color.red;
        else
            image.color = Color.white;
    }
}

从任意一网络对象发送命令
在这里插入图片描述

using Mirror;
using UnityEngine;
using UnityEngine.UI;

public class CommandTest : NetworkBehaviour
{
    public Image image;
    public Toggle toggle;
    void Start()
    {
        if (isServer)
        {
            toggle.gameObject.SetActive(false);
            image.gameObject.SetActive(true);
        }
        else
        {
            toggle.gameObject.SetActive(true);
            image.gameObject.SetActive(false);
        }

        toggle.onValueChanged.AddListener((isOn) =>
        {
            ChangeColor(isOn);
        });
    }


    [Command(requiresAuthority = false)]
    void ChangeColor(bool isOn)
    {
        if (isOn)
            image.color = Color.red;
        else
            image.color = Color.white;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

创新无处不在的便利体验——基于智能视频和语音技术的安防监控系统EasyCVR

随着科技的迅猛发展&#xff0c;基于智能视频和语音技术的EasyCVR智能安防监控系统正以惊人的速度改变我们的生活。EasyCVR通过结合先进的视频分析、人工智能和大数据技术&#xff0c;为用户提供了更加智能、便利的安全保护体验&#xff0c;大大提升了安全性和便利性。本文将介…

Geotrust的企业型通配符SSL证书申请

Geotrust作为世界知名的CA认证机构之一&#xff0c;颁发了各种SSL证书&#xff0c;其签发的数字证书被广泛应用于电子商务、企业间通信、网络安全等领域&#xff0c;SSL数字证书可以验证网络中用户的身份&#xff0c;确保数据的机密性和完整性。今天随SSL盾小编了解如何申请Geo…

OpenAI开发者大会大模型圈开卷AI Agent? 实在智能布局前瞻已下“先手棋”

“平地起惊雷&#xff0c;至今有余音。” 去年的11月&#xff0c;OpenAI发布ChatGPT给科技圈劈下了一道惊雷&#xff0c;引爆了全世界的AI大模型热潮&#xff0c;全球科技巨头公司争先恐后地推出通用大模型&#xff0c;探索产业应用的可能。 短短一年后&#xff0c;北京时间1…

ECharts中rich的使用

ECharts官方rich介绍 label: {// 在文本中&#xff0c;可以对部分文本采用 rich 中定义样式。// 这里需要在文本中使用标记符号&#xff1a;// {styleName|text content text content} 标记样式名。// 注意&#xff0c;换行仍是使用 \n。formatter: [{a|这段文本采用样式a},{b…

Vuex模块概念

一、核心概念 - module 1.目标 掌握核心概念 module 模块的创建 2.问题 由于使用单一状态树&#xff0c;应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时&#xff0c;store 对象就有可能变得相当臃肿。 这句话的意思是&#xff0c;如果把所有的状态都放在s…

别再跟我说你不理解 @Transactional 为什么会失效了!省流版解读

别再跟我说你不理解 Transactional 原理了&#xff01;省流版解读 前言user 表初始数据隔离级别&#xff1a;NESTED 案例一隔离级别&#xff1a;NESTED 案例一省流版答案解读隔离级别&#xff1a;NESTED 案例一省流版答案源码入口隔离级别 Propagation.NESTED 省流版源码剖析隔…

Fiddler Everywhere for Mac:一款强大且实用的网络调试工具

Fiddler Everywhere是一款备受Mac用户喜爱的网络调试工具&#xff0c;它具有强大的功能和易用性。作为一款老牌抓包工具&#xff0c;Fiddler Everywhere在Mac平台上拥有广泛的应用场景&#xff0c;无论是Web开发、移动应用开发还是网络调试&#xff0c;它都能提供全面的解决方案…

[论文阅读] CLRerNet: Improving Confidence of Lane Detection with LaneIoU

Abstract 车道标记检测是自动驾驶和驾驶辅助系统的重要组成部分。采用基于行的车道表示的现代深度车道检测方法在车道检测基准测试中表现出色。通过初步的Oracle实验&#xff0c;我们首先拆分了车道表示组件&#xff0c;以确定我们方法的方向。我们的研究表明&#xff0c;现有…

单链表(增删改查)【超详细】

目录 单链表 1.单链表的存储定义 2.结点的创建 3.链表尾插入结点 4.单链表尾删结点 5.单链表头插入结点 6.单链表头删结点 7.查找元素&#xff0c;返回结点 8.在pos结点前插入一个结点 ​编辑 9.在pos结点后插入一个结点 10.删除结点 11.删除pos后面的结点 12.修改…

XOR Construction

思路&#xff1a; 通过题目可以得出结论 b1^b2a1 b2^b3a2 ....... bn-1^bnan-1 所以就可以得出 (b1^b2)^(b2^b3)a1^a2 b1^b3a1^a2 有因为当确定一个数的时候就可以通过异或得到其他所有的数&#xff0c;且题目所求的是一个n-1的全排列 那么求出a的前缀异或和arr之后…

微软surface laptop禁用触摸屏(win10、设备管理器)

参考链接&#xff1a; 在屏幕中启用和禁用触摸屏Windows 设置如下

asp.net校园招聘管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net 校园招聘管理系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言开发 应用技术&#xff1a;asp.net c#s…

黄执中老师人际说服课思考总结(个人笔记整理 ②)

前言&#xff1a; 沟通和说服的区别&#xff1a;为什么沟通不能解决问题&#xff0c;处于劣势的一方&#xff08;承受问题的那方&#xff09;才想去沟通&#xff08;对方没有沟通动力&#xff09;。说服是温柔而有力的学科 - 劣势一方的武器。 说服是一门影响人的学问&#xff…

谷歌浏览器安装 vue-devtools 拓展,仅需3分钟,提供插件

1、vue-devtools 扩展 存储在百度网盘地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1LDIJxG26tOHtUe_aUh_pEA 提取码&#xff1a;v81r 下载下来后是一个.crx 文件 2、浏览器打开扩展程序 1、可以通过地址访问 chrome://extensions/ 2、可以自行找到相应位置…

探索双十一:从技术角度剖析电商狂欢节

每年的11月11日&#xff0c;全球最大的在线购物狂欢节“双十一”在中国掀起了一场规模空前的消费风暴。以阿里巴巴为代表的电商平台和众多品牌商家&#xff0c;不仅为消费者提供了数以亿计的优惠商品&#xff0c;同时也将这一活动打造成了一个科技与商业完美结合的标志事件。本…

ogg怎么转mp3格式?三个方法值得一试!

Ogg格式的缺点很多&#xff0c;比如其播放兼容性差、普及性差、无优势、对多声道系统的限制、专业音频制作软件不支持&#xff0c;但是保不齐我们有时候就有一个音频是ogg格式&#xff0c;那么如何把他转换成兼容性更高的MP3格式呢?下面介绍了三种常用的方法。 方法一&#xf…

ChatGPT:如何安装使用插件?超详细的教程!

1.最简单的方法 直接使用油猴&#xff0c;里边能搜索到的插件都可以用 2.官方插件使用 ChatGPT Plus引入插件后&#xff0c;功能暴强许多&#xff0c;比如可以联网、可以生成图表、可以分析视频、可以与PDF交谈等。但有不少小伙伴还不知道怎么安装使用ChatGPT插件&#xff0c;所…

【分享贴】需求变更、项目延误,项目经理应该如何应对?

案例分享&#xff1a; 项目经理小李跟进了一年半的项目&#xff0c;眼看着要到交付验收的阶段了&#xff0c;甲方的对接人却临时更换了&#xff0c;现在面临着一系列他无法处理的问题&#xff0c;项目目前推进困难。 案例背景&#xff1a; 小李在跟原甲方对接人合作时&#x…

【MySQL】rank()、row_number()、dense_rank()用法详解

建表测试 测试表数据&#xff1a;test1 CREATE DATABASE /*!32312 IF NOT EXISTS*/db_test /*!40100 DEFAULT CHARACTER SET utf8 */; USE db_test; /*Table structure for table test1 */ DROP TABLE IF EXISTS test1; CREATE TABLE test1 ( id int(10) NOT NULL, score i…

十个使用Spring Cloud和Java创建微服务的实践案例

在使用Java构建微服务时&#xff0c;许多人认为只要学习一些微服务设计模式就足够了&#xff0c;比如CQRS、SAGA或每个微服务一个数据库。虽然这是正确的&#xff0c;但同时学习一些通用的最佳实践也是很有意义的。本文分享一些最佳实践。 1 设计模块化的微服务 微服务应该专…