unity学习(60)——选择角色界面--MapHandler2-MapHandler.cs

1.新建一个脚本,里面有static变量loadingPlayerList

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Assets.Scripts.Model
{internal class LoadData{public static List<PlayerModel> loadingPlayerList = new List<PlayerModel>();}
}

2.因为与MAP相关的函数实在太多,之前LOGIN USER那样写不合适,在handler文件夹下,新建一个脚本文件,MapHandler.cs

3.MessageManager中的MapHandlerFk部分如下:

public void MapHandlerFk(SocketModel model)
{Debug.Log("MapHandlerFk");switch (model.command){//这头应该是1 2 4 6 8case MapProtocol.ENTER_SRES://初始化所有玩家信息--一开始进好几个Debug.Log("MapHandler-ENTER_SRES");//没问题PlayerModel[] players= Coding<PlayerModel[]>.decode(model.message);//loadplayerlistDebug.Log(model.message);LoadData.loadingPlayerList.AddRange(players);//增加多个元素Debug.Log("当前玩家进入地图");Debug.Log(SelectMenu.nowPlayer.map);Loading(SelectMenu.nowPlayer.map);//这个是2号 没有问题,到现在 为止 还没有涉及到动画break;case MapProtocol.ENTER_BRO://其他玩家进入场景--每次进一个Debug.Log("MapHandler-ENTER_BRO");//没问题PlayerModel player = Coding<PlayerModel>.decode(model.message);LoadData.loadingPlayerList.Add(player);//增加多个元素//createplayerMapHandler.getInstance().createPlayer(player);//createPlayer(player);break;}}

4.在MapHandler.cs中所有的函数如下:

 public void createPlayer(PlayerModel model){playerList.Add(model.id, model);//增加单个新角色-Assets.Model.Vector3 point = model.point;//见多自然就会了Assets.Model.Vector4 rotation = model.rotation;//下面大概率是要实例化了--通过预组件生成实例对象GameObject GO = (GameObject)GameObject.Instantiate(playerProfabs[model.job], new Vector3((float)point.X, (float)point.Y, (float)point.Z), new Quaternion((float)rotation.X, (float)rotation.Y, (float)rotation.Z, (float)rotation.W));GO.name = model.id;GO.tag = "Player";GO.transform.position = new Vector3(188f, 10f, 88f);//set position;playergoList.Add(model.id, GO);实例对象 数组 goGO.BroadcastMessage("InfoInit", model);//这个叫唤了也不一定收得到if (model.id == GameInfo.myModel.id){//make sure our camera wouln't look at other players.//GameObject tg= GameObject.Find ("Root");GO.BroadcastMessage("setTarget", GO);////BroadcastMessage ("setTarget",tg);//BroadcastMessage ("InfoInit",model);}}

到此为止没有错误了

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

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

相关文章

线性表章节课后习题答案集锦

目录 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.5 /* 要比较两个单词在字典中的顺序&#xff0c;可以逐个比较它们的字符。首先比较两个单词的第一个字符&#xff0c;如果相同&#xff0c;则继续比较下一个字符&#xff0c;直到找到不同的字符或者某个单词比较完毕…

IO流——打印流

PrintStream/PrintWriter(打印流) 作用&#xff1a;打印流可以更方便、更高效地将数据打印出去&#xff0c;能实现打印啥就出去啥 PrintStream提供地打印数据的方案 构造器说明public PrintStream​(OutputStream/File/String)打印流直接通向字节输出流/文件/文件路径publi…

Go-知识select

Go-知识select 1. select 的特性1.1 chan读写1.2 返回值1.3 default 2. select 经典使用2.1 永久阻塞2.2 快速检错2.3 限时等待 3. 实现原理3.1 数据结构3.2 实现逻辑3.3 原理总结 4. 总结4.1 大概原理4.2 参数4.3 返回值 一个小活动&#xff1a; https://developer.aliyun.com…

springboot基于SpringBoot的学生请假管理系统的设计与实现

摘 要 系统根据现有的管理模块进行开发和扩展&#xff0c;采用面向对象的开发的思想和结构化的开发方法对学生请假管理的现状进行系统调查。采用结构化的分析设计&#xff0c;该方法要求结合一定的图表&#xff0c;在模块化的基础上进行系统的开发工作。在设计中采用“自下而上…

江科大stm32学习笔记【6-2】——定时器定时中断定时器外部时钟

一.定时器定时中断 1.原理 2.硬件 3.程序 此时CK_PSC72M&#xff0c;定时1s&#xff0c;也就是定时频率为1Hz&#xff0c;所以可以PSC7200-1,ARR10000-1。 Timer.c: #include "stm32f10x.h" // Device headerextern uint16_t Num;//声明跨文件的…

力扣经典题:分割平衡字符串

大佬的代码非常简洁 int balancedStringSplit(char * s){short i0,count0,sign0;while(s[i]){signs[i]L?sign1:sign-1;if(sign0) count;}return count; }

Python最常用的库

本文章主要为大家总结&#xff0c;9个Python最常用的包及使用案例 1 NumPy 描述: NumPy 是 Python 的一个扩展库&#xff0c;支持高维数组与矩阵运算&#xff0c;并为数组运算提供了大量的数学函数库。它是科学计算中的基础包之一&#xff0c;用于处理大型多维数组和矩阵的运…

Transformer代码从零解读【Pytorch官方版本】

文章目录 1、Transformer大致有3大应用2、Transformer的整体结构图3、如何处理batch-size句子长度不一致问题4、MultiHeadAttention&#xff08;多头注意力机制&#xff09;5、前馈神经网络6、Encoder中的输入masked7、完整代码补充知识&#xff1a; 1、Transformer大致有3大应…

第十四届蓝桥杯省赛真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A \mathrm{A} A : 特殊日期试题 B: 与或异或试题 C : \mathrm{C}: C: 平均试题 D: 棋盘试题 E : \mathrm{E}: E: 互质数的个数试题 F: 阶乘的和试题 G: 小蓝的旅行计划试题 H: 太阳试题 I: 高塔试题 J \mathrm{J} J : 反异或 01 串 发现…

ChatGPT编程—实现小工具软件(批量替换文本、批量处理图像文件)

ChatGPT编程—实现小工具软件(批量替换文本、批量处理图像文件) 今天借助[小蜜蜂AI][https://zglg.work]网站的ChatGPT编程实现一个功能&#xff1a;批量处理文件及其内容&#xff0c;例如批量替换文本、批量处理图像文件等。 环境&#xff1a;Pycharm 2021 系统&#xff1a…

NVENC 视频编码器 API 编程指南 ( 中文转译 )

基于 NVIDIA Kepler™ 和更高版本 GPU 架构的 NVIDIA GPU 包含基于硬件的 H.264/HEVC/AV1 视频编码器&#xff08;以下简称 NVENC&#xff09;。NVENC 硬件采用 YUV/RGB 作为输入&#xff0c;并生成符合H.264/HEVC/AV1 标准的视频比特流。可以使用 NVIDIA 视频编解码器 SDK 中提…

挑战杯 机器视觉人体跌倒检测系统 - opencv python

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 机器视觉人体跌倒检测系统 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&…

蓝桥:硬币兑换(python)

问题描述&#xff1a; 小蓝手中有2023种不同面值的硬币,这些硬币全部是新版硬币,其中第i(1≤i≤2023)种硬币的面值为i,数量他为i个。硬币兑换机可以进行硬币兑换&#xff0c;兑换规则为:交给硬币兑换机两个新版硬币coin1和coin2,硬币兑换机会兑换成一个面值为coin1十coin2的旧…

使用C语言计算1/1-1/2+1/3-1/4+...+1/99-1/100

观察算式&#xff0c;发现分子都是1&#xff0c;分母从1~100&#xff0c;所以可以使用for循环产生1~100之间的数。 另一个问题是&#xff0c;如何产生正负交替的符号&#xff1f;很简单&#xff0c;这个符号本质上就是往每一项前面乘一个系数&#xff1a;一或者负一。所以只需…

008:安装Docker

安装Docker 如果不太熟悉Linux命令&#xff0c;不想学习Linux命令&#xff0c;可以直接看文末NAS面板章节&#xff0c;通过面板&#xff0c;像使用Window一样操作NAS。 一、安装 Docker 1.安装 Docker wget -qO- https://get.docker.com/ | sh2.启动 Docker 服务 sudo sys…

CMake官方教程6--为仪表加入测试支持

1. 测试支持 cmake_minimum_required(VERSION 3.15)# set the project name and version project(Tutorial VERSION 1.0)# specify the C standard add_library(tutorial_compiler_flags INTERFACE) target_compile_features(tutorial_compiler_flags INTERFACE cxx_std_11)# …

算法练习:二分查找

目录 1. 朴素二分查找2. 在排序数组中查找元素的第一个和最后一个位置3. 搜索插入位置4. x的平方根5. 山脉数组的峰值索引6. 寻找峰值7. 寻找旋转排序数组中的最小值8. 点名 1. 朴素二分查找 题目信息&#xff1a; 题目链接&#xff1a; 二分查找二分查找的使用前提为数据具有&…

人脸相关数据集(检测,活体,关键点,表情等等)

参考&#xff1a; 【笔记】人脸处理相关数据集 - 知乎

【Vue】首屏加载优化

文章目录 1. 使用路由懒加载2. 使用异步组件3. 精灵图雪碧图4. 使用webp格式图片5. 添加loading效果6. 事先设置图片宽高7. 配置webpack8. 利用CDN加速资源9. 延迟加载不重要的资源10. 服务器端渲染 1. 使用路由懒加载 首屏进入时只加载首屏相关路由&#xff0c;其他路由实现懒…

掌握高级设计原则:Java中的过滤器模式解析与实战演练,构建灵活且可扩展的系统架构

过滤器模式是一种结构型设计模式&#xff0c;它允许开发者使用不同的标准来过滤一组对象&#xff0c;并通过逻辑运算以解耦的方式将它们联系起来。 过滤器模式的核心在于提供了一个处理对象的机制&#xff0c;这个机制可以根据一个或多个标准来决定哪些对象应该被接受、哪些应…