3.9k 4 分钟

# 目的 C# 下传统的数组不支持 Linq 库,所以制作一个助手类,用来实现 Linq 库中的部分功能 # 代码 需要提前知道的知识点 委托 泛型委托 泛型方法 泛型约束 扩展方法 Lambda 表达式(非必要,调用的时候可能会用到) 排序算法(本篇中使用的是选择排序,算法的选择依据具体情况而定) 代码如下: ArrayHelpernamespace Common{ /// <summary> /// 提供一些数组常用的功能 /// </summary> public static class ArrayHelper...
2.9k 3 分钟

# 单例模式 属于创建型模式,是常用的设计模式之一。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 适用性:场景中存在唯一的对象,需要频繁的使用 CSharp 类与 Unity 脚本之间是有差别的,接下来将分开介绍 # CSharp 类 # 懒汉式,线程不安全 这种方式是最基本的实现方式 按需加载 /...
12k 11 分钟

# 观前提醒 项目会在 GitHub 中开源,链接:https://github.com/Maikire/Unity/tree/main/UnityFramework/A simple Unity UI framework # UI 框架 这是一个简单的 UI 框架,用于统一管理 UI 和 UI 事件 # 需求分析 UI 窗口(Canvas)的统一管理(记录 / 隐藏所有窗口,提供查找窗口的方法) UI 事件管理 UI 流程控制(例如:打开多个 UI 窗口时,按下 Esc 关闭最后打开的窗口) # 核心类 UI 管理类 UIManager 用于管理(记录 /...
6.4k 6 分钟

# 变换组件助手类 在游戏开发的过程中,经常需要对变换组件(Transform)进行各种操作,所以可写一个工具类,需要什么方法直接调用即可。 为了更简单的调用,可以使用扩展方法 # 代码 代码如下: TransformHelperusing System.Collections.Generic;using UnityEngine;namespace Common{ /// <summary> /// 变换组件助手类 /// </summary> public static class TransformHelper {...
4.1k 4 分钟

# JSON 解析 有关 JSON 的介绍,请看这篇文章 JSON 解析需要用到反射,这样就能实现 JSON 以及对应变量的动态更新。 JSON 的本质是一个字符串,因为有指定的格式,所以可以按照符号来切分(比如:':' 和 ' " ' 和 ',' )。这样就能获得变量的名字和对应的值。 由于字符串需要经常变动,所以使用 StringBuilder 代码如下: JSON解析 public class JsonHelper{ private static StringBuilder...
4.3k 4 分钟

# 基础一 .NET 程序编译过程: 写的是源代码(.cs 等)——CLS 编译 —>CIL (通用中间语言)(.exe .dll)——CLR 编译 ——> 0 1 计算机不认识源代码 CLS (公共语言规范) 编译的目的在于 跨语言 CLR (公共语言运行库) 编译优点在于 运行优化 和 跨平台 1 字节:有符号:sbyte 无符号:byte 1 字节有八位,所以长度为 2 的 8 次方 浮点数: float:1.2f (7 位精度) double:1.2d (15-16 位精度) decimal:1.2m (28-29 位精度) static void...
6.3k 6 分钟

# 观前提醒 项目会在 GitHub 中开源,链接:https://github.com/Maikire/UnityGameDemo/tree/main/01-02 本项目不涉及框架和设计,很适合初学者。 # 小游戏 点我开始游戏 如上面所展示的,这是一种很常见很简单的小游戏,接下来让我们一步一步地来实现它。 # 角色控制 首先要明确的一点,角色是否可以左右移动? 如果可以,那么摄像机和背景都要跟着动。 如果不可以,哪么只需要处理这些墙体就可以了。本文选择的是:不可以左右移动。这样做起来会更简单。 那么接下来只需要上下移动。组件如下(注:刚体要有重力) 关于动画:需要用到 Animator...
314 1 分钟

# hash of email 邮箱的 hash 值 通过加密算法获取 使用 加密工具 选择 哈希 / 散列,然后输入你的邮箱 算法选择 MD5 生成的结果就是我们想要的 hash 值 通过头像 url 获取 可以看评论者的头像 url,比如 https://gravatar.loli.net/avatar/614d5030c7301b12be113b3f08114171?size=80&d=mp 其中 614d5030c7301b12be113b3f08114171 就是邮箱的 hash 值 自定义头像 需要在 Gravatar...