1.3k 1 分钟

# C# 反射(Reflection) 动态获取类型信息,动态创建对象,动态访问成员的过程。 # 优缺点 优点: 反射提高了程序的灵活性和扩展性。 降低耦合性,提高自适应能力。 它允许程序创建和控制任何类的对象,无需提前硬编码目标类。 缺点: 性能问题:使用反射基本上是一种解释操作,用于字段和方法接入时要远慢于直接代码。因此反射机制主要应用在对灵活性和拓展性要求很高的系统框架上,普通程序不建议使用。 使用反射会模糊程序内部逻辑;程序员希望在源代码中看到程序的逻辑,反射却绕过了源代码的技术,因而会带来维护的问题,反射代码比相应的直接代码更复杂。 #...
1.1k 1 分钟

# 代码 需要提前知道的知识点 委托和事件 动画和动画事件 代码如下: AnimationEventBehaviourusing System;using UnityEngine;using UnityEngine.Events;namespace Common{ /// <summary> /// 动画事件行为类 /// </summary> public class AnimationEventBehaviour : MonoBehaviour { // 在特定时机取消动画或触发事件 //...
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 用于管理(记录 /...
5.8k 5 分钟

# 变换组件助手类 在游戏开发的过程中,经常需要对变换组件(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...
12k 11 分钟

# 观前提醒 项目会在 GitHub 中开源,链接:https://github.com/Maikire/UnityGameDemo/tree/main/01-02 本次制作的小游戏很适合初学者。 如果有什么问题或想法,欢迎各位在评论区留言。 # 小游戏 如上面所展示的,这是一种很常见很简单的小游戏,接下来让我们一步一步地来实现它。 # 需求分析 # 角色 上下左右移动,不能移出屏幕 自动攻击 有三个技能 角色没有生命值 # 子弹 一发子弹就能解决敌人 命中时生成爆炸的动画 #...
6.4k 6 分钟

# 观前提醒 项目会在 GitHub 中开源,链接:https://github.com/Maikire/UnityGameDemo/tree/main/01-02 本次制作的小游戏很适合初学者。 如果有什么问题或想法,欢迎各位在评论区留言。 # 小游戏 点我开始游戏 如上面所展示的,这是一种很常见很简单的小游戏,接下来让我们一步一步地来实现它。 #...