2024.10.23
【力扣刷题】
暂无
【数据结构】
暂无
【其他】
TCP(传输控制协议)(长连接):
TCP 是一种面向连接的、可靠的协议,它通过三次握手建立连接,客户端发送请求到服务器,服务器响应并返回数据,确保数据的可靠传输。
UDP(用户数据报协议):UDP 是一种面向无连接的协议,它不需要建立连接,直接发送数据包。
HTTP(超文本传输协议)(短连接):HTTP是建立在TCP协议上。HTTP协议是无连接的,即每次请求和响应之间是独立的,服务器不会保存客户端的状态信息。
【Unity】
泛型单例模式
cs
// 泛型单例模式
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;
}
}
}
cs
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 来访问它。
最后记得唤醒该单例模式。
从缓存加载资源
cs
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;
}
}
需要调用时就可以直接使用单例调用。
cs
GameObject obj = ResMgr.instance.LoadAsset(path, transform);
【奇思妙想】
我感觉《斗罗大陆》、《斗破苍穹》这一类小说,完全可以改成一个开放世界的RPG游戏。目前游戏界里能看到成熟的例子就有《原神》,那既然都有原神了,我为什么还要提呢?我单纯的觉得这些小说完全可以打造一批属于我们国家的超级3A大作,这些小说作者都还健在,并且这些玄幻类的小说自带废柴成长,完整的世界观,以及无数可以想象的地方。
这体量完全就是一个超级3A,超过一千多章节的内容,可以分多少DLC,而且玩法还能不一样,还能探索世界,那Boss要人有人,要怪物有怪物,加上国内比国外更好的优质服务器,完全可以和好朋友一起开黑打Boss。
如果是做《斗破苍穹》完全可以是做主线、支线剧情,还能顺便探索一下这个斗破世界,收集异火,去看一看自己的后宫佳丽,打一打除主线剧情外的其他Boss以及隐藏Boss,这本小说好像还有炼药师吧,如果炼药系统做得有创意并且不枯燥的话,将会是一个耐玩的系统。
如果是做《斗罗大陆》那就是玩魂环了,根据书中的大师的《十大核心竞争理论》就能开发基本的玩法,玩家选择不同的职业就应该只能玩一种职业(准确来讲是不能再战斗过程中切换角色),这样的话是希望提高玩家对拥有队友的需求,对魂环的追求。魂环系统,魂骨系统,宗派系统(氪金点),以及各种试炼,但凡看过原著或者动漫,玩这个游戏恐怕都想搞个封号斗罗回家。
接下来就是各种人物,NPC,相关敌对对象和场景的问题了,关于人物服饰,我想无需多言,包走国风潮流或者二次元路线的,这可是一个能向世界展示我们文化底蕴的机会,现在的审美观都已经被西方冲的稀稀跨跨的,现在不是钱突很多,就是夹子御姐小萝莉。国外的3A女性角色有被sweetBaby刻意改丑,但我们完全不受限制,再说老外也喜欢漂亮的女性角色,像《黑神化:悟空》的蜘蛛精四妹,至少符合国内的玩家审美才是正道。
剩下的除了技术难题,就剩策划和创意问题了,这可以主打一个剧情向的,每年出一个DLC来一步一步补全小说中的内容,跟追番一个道理,也可以做自由开放探索世界,就是不知道这要是做出来得花多少时间。
------每天努力十五分钟,一年就努力了5475分钟,也就是91.25小时。(记得乘上0.7,这是扣去双休和法定的节假日的时间的)