unity学习(41)——创建(create)角色脚本(panel)——UserHandler(收)+CreateClick(发)——发包!

本文主要是介绍unity学习(41)——创建(create)角色脚本(panel)——UserHandler(收)+CreateClick(发)——发包!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.客户端的程序结构被我精简过,现在去MessageManager.cs中增加一个UserHandler函数,根据收到的包做对应的GameInfo赋值。

2.在Model文件夹下新增一个协议文件UserProtocol,内容很简单。

using System;public class UserProtocol
{public const int LIST_CREQ = 0;public const int LIST_SRES = 1;public const int CREATE_CREQ = 2;public const int CREATE_SRES = 3;public const int SELECT_CREQ = 4;public const int SELECT_SRES = 5;public const int REMOVE_CREQ = 6;public const int REMOVE_SRES = 7;
}

3.在Model文件夹的SocketModel.cs中增加CreateTDO部分,用来组装数据包,内容如下:

public class CreateDTO{public int job{get;set;}public string name{get;set;}}

4.增加panel中“创建角色”按钮响应函数CreateClick():(用来向服务器发包)(之前叫finish)

代码如下: (vs2022的代码提示功能简直逆天!

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SelectMenu : MonoBehaviour
{// Start is called before the first frame update//public GameObject c = GameObject.FindWithTag("selectMenuCanvas");public GameObject quan;//start中就保存好了public int flag = 0;void Start(){//gameObject.SetActive(false);//GameObject m = GameObject.FindWithTag("selectMenuCanvas");//现在我挂在camera上就可以这么用了this.quan = GameObject.FindWithTag("selectMenuCanvas");//同一命名空间即可,canvas在最外边是有道理的this.quan.SetActive(false);//gameObject.GetComponent<Renderer>.enabled = false;}// Update is called once per framevoid Update()//角色的选择和创建我做在一起就可以了{//Debug.Log(GameInfo.GAME_STATE);//初始状态开始为0//Debug.Log(GameState.PLAYER_CREATE); //这个是4if (GameInfo.GAME_STATE == GameState.PLAYER_CREATE && this.flag == 0){//Debug.Log(GameInfo.GAME_STATE);//初始状态开始为0//Debug.Log(GameState.PLAYER_CREATE);this.flag = 1;Debug.Log("这里计划是只执行一次");this.quan.SetActive(true);}}public void GoToCreate()//unity那边想要加载必须public{Debug.Log("我确实进入onclick函数了");//这种藏起来的找不着!第二次犯这个错误了//下面这两句再次说明了之前false的找不到//GameObject panel = GameObject.FindWithTag("createPanel");//同一命名空间即可,canvas在最外边是有道理的//panel.SetActive(true);Debug.Log(CreatePlayerPanel.panel);CreatePlayerPanel.panel.SetActive(true);//用的static实例类--这个卡住了Debug.Log("给我弹出创造页面");}
}

服务器也收到包了(有问题下次再改)

这篇关于unity学习(41)——创建(create)角色脚本(panel)——UserHandler(收)+CreateClick(发)——发包!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/744099

相关文章

Python3脚本实现Excel与TXT的智能转换

《Python3脚本实现Excel与TXT的智能转换》在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式,本文将使用Python3实现Excel与TXT的智能转换,需要的可以... 目录场景应用:为什么需要这种转换技术解析:代码实现详解核心代码展示改进点说明实战演练:从Excel到

Python脚本实现图片文件批量命名

《Python脚本实现图片文件批量命名》这篇文章主要为大家详细介绍了一个用python第三方库pillow写的批量处理图片命名的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言源码批量处理图片尺寸脚本源码GUI界面源码打包成.exe可执行文件前言本文介绍一个用python第三方库pi

Java中对象的创建和销毁过程详析

《Java中对象的创建和销毁过程详析》:本文主要介绍Java中对象的创建和销毁过程,对象的创建过程包括类加载检查、内存分配、初始化零值内存、设置对象头和执行init方法,对象的销毁过程由垃圾回收机... 目录前言对象的创建过程1. 类加载检查2China编程. 分配内存3. 初始化零值4. 设置对象头5. 执行

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler