10k 10 分钟

# 群落算法 实现鱼群、鸟群、蜜蜂等群落的模拟。 群落应符合以下规则: 避免与邻近个体发生碰撞 避免与障碍物发生碰撞 趋向与邻近的个体采用相同的速度和方向 向邻近个体的平均位置靠近 # 准备 个体(Boid):准备好模型并添加基础组件 吸引子(Attractor):空物体,用于挂载吸引子脚本,它是一个群落的中心 生成器(Spawner):空物体,用于挂载生成器脚本 障碍物(Obstacle):添加有碰撞器的障碍物,用于测试 # 代码 # 吸引子(Attractor) Attractor 是所有 Boid 聚集的对象。没有它,Boid 会飞出屏幕。 让它沿着 Sin...
1.9k 2 分钟

# 加载场景管理器 用于处理加载场景的工具类。 # 代码 异步加载过渡场景 异步加载目标场景,提供加载进度 使用协程等待异步加载 使用单例模式确保只有一个实例 代码如下: using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;namespace Common{ /// <summary> /// 加载场景管理器 /// </summary> public class...
12k 11 分钟

# Sqlite 助手 这篇文章介绍了如何在 Unity 中使用 Sqlite Sqlite 助手是对 Sqlite 数据库语言的封装,使用者可以绕过数据库语言,用更简单的方法操作数据库 路径问题: 数据库文件(.db)应该放到 StreamingAssets 文件夹中 向 Sqlite 助手提供 StreamingAssets 中的路径,Sqlite 助手利用路径助手处理路径 # 代码 using Mono.Data.Sqlite;using System;using System.Text;using UnityEngine;namespace Common{...
4.6k 4 分钟

# 路径助手 分平台处理 StreamingAssets 路径 Application.streamingAssetsPath 会根据不同的平台返回对应的 StreamingAssets 目录,这是最常用的方法,也可以使用 Unity 宏标签手动分平台,在下面的代码中会做出演示。 只有 PC 端的 StreamingAssets 文件夹是可读写的,其他平台都是只读的(.txt 文件可以直接读,其他类型的文件需要进一步操作)。 移动端(Android、iOS 等):想要读写这些文件,需要将 StreamingAssets 文件夹中的内容拷贝到持久化路径...
4.9k 4 分钟

# XML XML 指的是可扩展标记语言(eXtensible Markup Language) XML 被设计用来传输和存储数据,其焦点是数据的内容。HTML 则用来表现数据,其焦点是数据的外观。 XML 在 Web 中起到的作用接近于 HTML。XML 是各种应用程序之间进行数据传输的最常用的工具。 XML 数据能够存储在独立的.xml 文件中。 XML 是独立于软件和硬件的信息传输工具。 # XML 的用途 XML 规定了文本的编辑格式,统一格式可以简化数据共享、简化数据传输、简化平台变更 XML 可以分离数据和其它逻辑(例:更改某个数值时,不需要更改源码,只需要更改 XML...
1.1k 1 分钟

# YAML YAML 是专门用来写配置文件的语言(它可以是 "YAML Ain't a Markup Language" 亦或是 "Yet Another Markup Language") YAML 数据能够存储在独立的.yml 文件中。 # YAML 语法 # 基本语法 大小写敏感 使用缩进表示层级关系 缩进不允许使用 tab,只允许空格 缩进的空格数不重要,只要相同层级的元素左对齐即可 #表示注释 # 支持的数据类型 对象:键值对的集合,又称为映射 / 哈希 /...
668 1 分钟

# JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式,它比 XML 更小、更快、更易解析 JSON 独立于语言:JSON 使用 Javascript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。目前非常多的动态(PHP,JSP,.NET)编程语言都支持 JSON JSON 以特定的格式记录某些变量的值,可以用来给变量赋值或记录变量值 # JSON 与 JavaScript JSON 文本格式在语法上与创建...
1.4k 1 分钟

# MVC 模式 Model-View-Controller(模型 - 视图 - 控制器)模式用于应用程序的分层开发。 Model(模型):模型代表一个存取数据的对象,在数据变化时更新控制器。 View(视图):视图代表模型包含的数据的可视化。 Controller(控制器):控制器作用于模型和视图上,使视图与模型分离开。它控制数据流向模型对象,并在数据变化时更新视图。 # 类图 # 代码 # 模型 namespace MVCPattern{ /// <summary> /// 模型 /// </summary> public...
1.8k 2 分钟

# 访问者模式 属于行为型模式。 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 适用性: 主要目的是将数据结构与数据操作分离。适用于稳定的数据结构,而算法是可以多变的。 访问者模式的优点就是增加新的操作很容易,因为增加新的操作就意味着增加一个新的访问者。访问者模式将有关的行为集中到一个访问者对象中。 访问者模式的缺点是使增加新的数据结构变得困难了。 访问者模式不常用。因为数据结构不变化的情况很少,所以使用访问者模式的机会不多。 # 类图 # 代码 # 访问者 namespace...
1.4k 1 分钟

# 解释器模式 属于行为型模式。 给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 适用性: 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。 当有一个语言需要解释执行,并且你可以将该语言中的句子表示为一个抽象语法树时,可以使用解释器模式。 易扩展,易于实现简单文法。 对于复杂的文法比较难维护和管理。当文法非常复杂时建议使用其他的技术(语法分析程序或编译生成器) # 类图 # 代码 # 解释器 namespace...