【日志】网络传输协议TCP/UDP/HTTP // unity泛型类单例模式

2024.10.23

【力扣刷题】

暂无

【数据结构】

暂无

【其他】

TCP(传输控制协议)(长连接):

TCP 是一种面向连接的、可靠的协议,它通过三次握手建立连接,确保数据的可靠传输。

  • 第一次是客户端向服务端发送连接申请
  • 第二次是服务端向客户端发送报文并完成服务端到客户端的连接通道
  • 第三次是客户端回应服务端的报文,完成连接。

UDP(用户数据报协议)

UDP 是一种面向无连接的协议,它不需要建立连接,直接发送数据包。

HTTP(超文本传输协议)(短连接)

HTTP 是建立在TCP协议上。HTTP协议是无连接的,即每次请求和响应之间是独立的,服务器不会保存客户端的状态信息。

【Unity】

泛型单例模式

// 泛型单例模式
public class Singleton<T> where T:new()
{protected static T m_Instance;public static T instance{get{if(m_Instance == null){m_Instance = new T();}return m_Instance;}}
}
public class SingletonMono<T> : MonoBehaviour where T : SingletonMono<T>
{private static T m_Instance;public static T instance{get{if(m_Instance == null){m_Instance = FindObjectOfType<T>();if(m_Instance == null){GameObject singleObj = new GameObject("Singleton" + typeof(T));m_Instance = singleObj.AddComponent<T>();}}return m_Instance;}}public virtual void Awake(){// 将当前gameObject设置为常驻对象DontDestroyOnLoad(gameObject);if (m_Instance == null){m_Instance = this as T;}else{GameObject.Destroy(gameObject);}}
}

        这段代码定义了一个泛型类 SingletonMono<T>,它继承自 MonoBehaviour,并且要求 T 必须是 SingletonMono<T> 的子类。在这个单例模式的实现中,Instance 属性会检查是否已经有一个该类型的实例存在。如果没有,它会创建一个新的游戏对象,并添加相应的组件。这样,你可以确保在整个游戏场景中,只有一个该类型的实例存在。使用这种方式,你可以确保你的单例组件在整个场景中只有一个实例,并且可以通过Instance 来访问它。

最后记得唤醒该单例模式。

从缓存加载资源 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ResMgr : SingletonMono<ResMgr>
{// 用于缓存已加载好的资源// 创建哈希表对象private Hashtable m_HashTable = null;private Hashtable hashTable{get{if(m_HashTable == null){m_HashTable = new Hashtable();}return m_HashTable;}}// 用于从Resources中加载相关预制体public GameObject LoadAsset(string path, Transform parent = null, bool isCache = false){GameObject prefab = null;// 通过哈希表判定该预制体是否已经缓存if(hashTable.ContainsKey(path)){prefab = hashTable[path] as GameObject;}else{prefab = Resources.Load<GameObject>(path);if(isCache){hashTable.Add(path,prefab);}}// 实例化对象GameObject go = Instantiate(prefab, parent);return go;}
}

需要调用时就可以直接使用单例调用。 

GameObject obj = ResMgr.instance.LoadAsset(path, transform);

【奇思妙想】 

        我感觉《斗罗大陆》、《斗破苍穹》这一类小说,完全可以改成一个开放世界的RPG游戏。目前游戏界里能看到成熟的例子就有《原神》,那既然都有原神了,我为什么还要提呢?我单纯的觉得这些小说完全可以打造一批属于我们国家的超级3A大作,这些小说作者都还健在,并且这些玄幻类的小说自带废柴成长,完整的世界观,以及无数可以想象的地方。

        这体量完全就是一个超级3A,超过一千多章节的内容,可以分多少DLC,而且玩法还能不一样,还能探索世界,那Boss要人有人,要怪物有怪物,加上国内比国外更好的优质服务器,完全可以和好朋友一起开黑打Boss。

        如果是做《斗破苍穹》完全可以是做主线、支线剧情,还能顺便探索一下这个斗破世界,收集异火,去看一看自己的后宫佳丽,打一打除主线剧情外的其他Boss以及隐藏Boss,这本小说好像还有炼药师吧,如果炼药系统做得有创意并且不枯燥的话,将会是一个耐玩的系统。

        如果是做《斗罗大陆》那就是玩魂环了,根据书中的大师的《十大核心竞争理论》就能开发基本的玩法,玩家选择不同的职业就应该只能玩一种职业(准确来讲是不能再战斗过程中切换角色),这样的话是希望提高玩家对拥有队友的需求,对魂环的追求。魂环系统,魂骨系统,宗派系统(氪金点),以及各种试炼,但凡看过原著或者动漫,玩这个游戏恐怕都想搞个封号斗罗回家。

        接下来就是各种人物,NPC,相关敌对对象和场景的问题了,关于人物服饰,我想无需多言,包走国风潮流或者二次元路线的,这可是一个能向世界展示我们文化底蕴的机会,现在的审美观都已经被西方冲的稀稀跨跨的,现在不是钱突很多,就是夹子御姐小萝莉。国外的3A女性角色有被sweetBaby刻意改丑,但我们完全不受限制,再说老外也喜欢漂亮的女性角色,像《黑神化:悟空》的蜘蛛精四妹,至少符合国内的玩家审美才是正道。

        剩下的除了技术难题,就剩策划和创意问题了,这可以主打一个剧情向的,每年出一个DLC来一步一步补全小说中的内容,跟追番一个道理,也可以做自由开放探索世界,就是不知道这要是做出来得花多少时间。


——每天努力十五分钟,一年就努力了5475分钟,也就是91.25小时。(记得乘上0.7,这是扣去双休和法定的节假日的时间的)

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

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

相关文章

【力扣 + 牛客 | SQL题 | 每日4题】牛客大厂面试真题W3,W10

1. 牛客大厂面试真题SQLW3&#xff1a;分析客户逾期情况 1.1 题目&#xff1a; 描述 有贷款信息表&#xff1a;loan_tb&#xff08;agreement_id&#xff1a;合同id&#xff0c;customer_id&#xff1a;客户id&#xff0c;loan_amount&#xff1a;贷款金额&#xff0c;pay_a…

在 Windows 中使用 GCC 编译运行 C++

在 Windows 中使用 GCC 编译开发 C 通过 MSYS2 安装 MinGW 工具链 MSYS2&#xff08;Minimal SYStem 2&#xff09;是一个集成了大量的GNU工具链、工具和库的开源软件包集合。它提供了一个类似于 Linux 的shell环境&#xff0c;可以在 Windows 系统中编译和运行许多 Linux 应…

铝基板PCB创建助手

支持在创建元件时创建网表 支持圆形和矩形阵列布局 支持板框信息修改 支持缺口位置修改 支持元件封装预览 支持原理图预览 支持PCB板框和布局预览 支持灯珠方向更改为切向和径向 支持报告输出 支持元件封装选择 铝基板PCB创建助手 V1.0

Nginx 配置基于IP 地址的 Web 服务器

Nginx 配置基于IP 地址的 Web 服务器 1.配置网卡 nmcli connection modify ipv4.address 192.168.232.130/24 ipv4.gateway 192.168.232.2 ipv4.dns 192.168.232.2 ipv4.method manual connection.autoconnect yes 2.添加ip地址 nmcli connection modify ens160 ipv4.address…

如何理解全局和局部的规律

再和大家聊的话题是全局和局部的辩证关系。 研究全局和局部的辩证关系&#xff0c;研究的就是做事的方法。 不过这里说的做事的方法不是具体的执行办法&#xff0c;比如这一步应该怎么做&#xff0c;那一步应该怎么做。 而是重在思考&#xff0c;应该先做什么&#xff0c;后…

GPT-Sovits-2-微调模型

1. 大致步骤 上一步整理完数据集后&#xff0c;此步输入数据, 微调2个模型VITS和GPT&#xff0c;位置在 <<1-GPT-SoVITS-tts>>下的<<1B-微调训练>> 页面的两个按钮分别执行两个文件: <./GPT_SoVITS/s2_train.py> 这一步微调VITS的预训练模型…

SQLite 数据库设计最佳实践

SQLite特点 SQLite是一款功能强大的 轻量级嵌入式数据库 ,具有以下显著特点: 体积小 :最低配置仅需几百KB内存,适用于资源受限环境。 高性能 :访问速度快,运行效率高于许多开源数据库。 高度可移植 :兼容多种硬件和软件平台。 零配置 :无需复杂设置,开箱即用。 自给自…

【Linux】ClickHouse 部署

搭建Clickhouse集群时&#xff0c;需要使用Zookeeper去实现集群副本之间的同步&#xff0c;所以需要先搭建zookeeper集群 1、卸载 # 检查有哪些clickhouse依赖包&#xff1a; [rootlocalhost ~]# yum list installed | grep clickhouse# 移除依赖包&#xff1a; [rootlocalho…

【LeetCode】两数之和、大数相加

主页&#xff1a;HABUO&#x1f341;主页&#xff1a;HABUO 1.两数之和 题目&#xff1a;给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一…

计算机毕业设计——ssm基于JAVA的OA办公系统的设计与实现演示录像2021

作者&#xff1a;程序媛9688开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等。 &#x1f31f;文末获取源码数据库&#x1f31f;感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff08;免费咨询指导选题&#xff09;&#xff0…

根据输入的详细地址解析经纬度

摘要&#xff1a; 今天遇到一个需求&#xff1a;就是做客户导入的时候因为导入的客户地址的时候没有经纬度的&#xff0c;但是同步的时候需要经纬度的&#xff0c;所以还是要根据客户提供的详细地址解析出来对应的经纬度&#xff01;回填到对应的经纬度的表单之中进行客户的同步…

【文心智能体 | AI大师工坊】如何使用智能体插件,完成一款旅游类智能体的开发,来体验一下我的智能体『​​​​​​​背包客』

&#x1f680;『背包客』点击前往体验&#xff1a;https://mbd.baidu.com/ma/s/d7RHMlWh 最近参加了百度文心智能体平台AI大师工坊&#x1f389;活动&#xff0c;在这个活动中&#xff0c;我利用文心平台提供的各种插件、大模型等工具&#xff0c;打造了一个工具类的智能体应用…

使用Docker Compose简化微服务部署

文章目录 Docker Compose简介安装Docker Compose在Windows上安装Docker Compose在macOS上安装Docker Compose在Linux上安装Docker Compose 创建Docker Compose文件创建compose文件构建并运行服务 使用Docker Compose网络定义网络验证网络连接 使用Docker Compose卷定义卷使用卷…

WPF的触发器(Trigger)

WPF&#xff08;Windows Presentation Foundation&#xff09;是微软.NET框架的一部分&#xff0c;用于构建Windows客户端应用程序。在WPF中&#xff0c;触发器&#xff08;Triggers&#xff09;是一种强大的功能&#xff0c;允许开发者根据控件的状态或属性值来动态改变控件的…

ChatGPT、Python和OpenCV支持下的空天地遥感数据识别与计算——从0基础到15个案例实战应用

在科技飞速发展的时代&#xff0c;遥感数据的精准分析已经成为推动各行业智能决策的关键工具。从无人机监测农田到卫星数据支持气候研究&#xff0c;空天地遥感数据正以前所未有的方式为科研和商业带来深刻变革。然而&#xff0c;对于许多专业人士而言&#xff0c;如何高效地处…

Linux rabbitmq客户端 SimpleAmqpClient 源码编译

SimpleAmqpClient的编译成库&#xff0c;加入到工程中 1、下载SimpleAmqpClient 源码&#xff1a; git克隆的路径为&#xff1a;https://github.com/alanxz/SimpleAmqpClient.git 下载压缩包路径&#xff1a;https://codeload.github.com/alanxz/SimpleAmqpClient/zip/maste…

Java中String的length与Oracle数据库中VARCHAR2实际存储长度不一致的问题

目录 一、根本原因 二、解决方案 一、根本原因 Oracle数据库新增数据的时候报如下错误&#xff1a; 先给大家看个小案例&#xff0c;这样更好去理解&#xff0c;下面是一段测试代码&#xff1a; 这里面我分别列举了三种字符串&#xff0c;中文&#xff0c;英文和数字以及两种…

SpringKafka生产者、消费者消息拦截

1 前言 在Spring Kafka中&#xff0c;可以通过配置拦截器来实现对生产者和消费者消息的拦截。拦截器可以用来记录日志、修改消息等等。 2 基于Kafka管理的拦截器 Kafka原生提供的拦截器接口是org.apache.kafka.clients.producer.ProducerInterceptor和 org.apache.kafka.cli…

动态规划 —— 路径问题-礼物的最大价值

1. 剑指offer-JZ47-路径问题-礼物的最大价值 题目链接&#xff1a; 礼物的最大价值_牛客题霸_牛客网https://www.nowcoder.com/practice/2237b401eb9347d282310fc1c3adb134?tpId265&tqId39288&ru/exam/oj 2. 算法原理 状态表示&#xff1a;以莫一个位置位置为结尾 d…

安装git-lfs发生报错Could not find Git; can not register Git LFS.解决方案

解决方案&#xff1a; 步骤1.安装Github-Deskop Download GitHub Desktop | GitHub Desktophttps://desktop.github.com/download/ 步骤2.安装 Git&#xff01; Git for WindowsWe bring the awesome Git VCS to Windowshttps://gitforwindows.org/ 这两个安装完成之后即可…