U4S2SL1——配置数据
U4S2SL1——配置数据 ScriptableObject数据文件为什么非常适合用来做配置文件? 配置文件的数据在游戏发布之前定规则 配置文件的数据在游戏运行时只会读出来使用,不会改变内容 在Unity的Inspector窗口进行配置更加的方便 只用不改,并且经常会进行配置的数据,非常适合使用ScriptableObject 我们可以利用ScriptableObject数据文件,来制作编辑器相关功能 比如:Unity内置的技能编辑器、关卡编辑器等等 我们不需要把编辑器生成的数据生成别的数据文件,而是直接通过ScriptableObject进行存储, 因为内置编辑器只会在编辑模式下运行,编辑模式下ScriptableObject具备数据持久化的特性 举例制作 以前我们的常规配置方式,都是利用之前学习过的数据持久化四部曲当中的内容进行配置的 比如 xml配置 json配置...
U4S2L4——ScriptableObject 让其真正意义上的持久化
U4S2L4——ScriptableObject 让其真正意义上的持久化 对于 ScriptableObject 的数据,由于它在游戏发布运行过程中无法被持久化 我们可以利用 PlayerPrefs、XML、Json、2进制 等等方式,让其可以达到被真正持久化的目的 但是并不是很建议大家利用 ScriptableObject 来做数据持久化,有点画蛇添足的意思了 本章代码关键字 1JsonUtility.FromJsonOverwrite() //传入json字符串和要读取数据的对象,json字符串反序列化的内容会直接覆盖掉传入的对象的数据 前置知识 回顾通过ScriptableObject创建非持久化数据 Json数据持久化 回顾数据持久化 硬盘<=>内存 使用数据时从硬盘中读取,数据改变后保存到硬盘上,游戏退出程序关闭后,数据信息会被存储到硬盘上,达到持久化的目的 结合我们之前学习过的数据持久化相关知识 PlayerPrefs XML Json 2进制 虽然 ScriptableObject...
U4S2L3——ScriptableObject 非持久数据
U4S2L3——ScriptableObject 非持久数据 本章代码关键字 1ScriptableObject.CreateInstance<>() //在运行时创建出指定继承ScriptableObject的对象,该对象只存在于内存当中,可以被GC ScriptableObject 的非持久化数据 ScriptableObject 的非持久化数据指的是,不管在编辑器模式还是在发布后都不会持久化的数据 我们可以根据自己的需求随时创建对应数据对象进行使用,就好像直接 new 一个数据结构类对象 利用ScriptableObject生成非持久化的数据 利用 ScriptableObject 中的静态方法 CreateInstance<>(),该方法可以在运行时创建出指定继承 ScriptableObject 的对象 该对象只存在于内存当中,可以被 GC,调用一次就创建一次 123456789101112131415using UnityEngine;public class Lesson3 : MonoBehaviour{ ...
U4S2L2——ScriptableObject 数据文件的使用
U4S2L2——ScriptableObject 数据文件的使用 本章代码关键字 123456//在继承ScriptableObject的类内Awake() { } //数据文件创建时调用OnDestroy() { } //ScriptableObject 对象将被销毁时调用OnDisable() { } //ScriptableObject 对象销毁时、即将重新加载脚本程序集时 调用OnEnable() { } //ScriptableObject 创建或者加载对象时调用OnValidate() { } //编辑器才会调用的函数,Unity在加载脚本或者Inspector窗口中更改值时调用 ScriptableObject...
U4S2L1——ScriptableObject 数据文件的创建
U4S2L1——ScriptableObject 数据文件的创建 本章代码关键字 123456ScriptableObject //数据配置存储基类,自定义的数据资源文件需要继承它[CreateAssetMenu()] //通过菜单创建资源特性,参数分别是是默认文件名,为在Asset/Create菜单中显示的名字,排序优先级ScriptableObject.CreateInstance<>() //创建数据资源文件的方法,泛型参数为要创建的ScriptableObject派生类AssetDatabase.CreateAsset() //传入要保存的资源文件和存储路径,在指定目录下创建文件AssetDatabase.SaveAssets() //将创建的资源文件保存下来AssetDatabase.Refresh() //刷新Project窗口 ScriptableObject数据文件的创建 创建...
U4S2——数据配置存储基类 ScriptableObject
U4S2——数据配置存储基类 ScriptableObject ScriptableObject ScriptableObject 是 Unity 提供的一个数据配置存储基类 它是一个可以用来保存大量数据的数据容器,就像是可以自定义的数据资源文件 它是一个类似 MonoBehavior 的基类,需要我们继承它来进行使用,它的主要作用是: 数据复用(多个对象用同一个数据) 配置文件(配置游戏中的数据) 编辑模式下的数据持久化 本系列学习内容: ScriptableObject 数据文件的创建 ScriptableObject 数据文件的使用 ScriptableObject 非持久数据 ScriptableObject 让其真正意义上的持久 ScriptableObject 的应用 配置数据 复用数据 数据带来的多态行为 单例模式化的获取数据 数据复用 比如一个子弹对象,以前我们通过面向对象的思想去做的话, 会写一个继承 MonoBehaviour...
UMVCSL7——PureMVC框架UI实例
UMVCSL7——PureMVC框架UI实例 注意!需要先将前面6节课的内容看完再来接着看这里的内容 本章代码关键字 12345678Notifier.Facade //继承了Notifier的类(SimpleCommand、Mediator、Proxy都继承了该类)可以直接调用场景上唯一的FacadeNotifier.SendNotification() //继承了Notifier的类可以直接发送通知Facade.HasMediator() //传入Mediator的名字,检测是否有该MediatorFacade.RegisterMediator() //传入Mediator对象,注册MediatorFacade.RetrieveMediator() //传入Mediator的名字,获取特定的MediatorFacade.HasProxy() //传入Proxy的名字,检测是否有该ProxyFacade.RegisterProxy() ...
UMVCSL6——Facade和Command
UMVCSL6——Facade和Command 本章代码关键字 123456Facade //Facade基类,任何在PureMVC内作为Facade的类都应该继承该类,可以实现对PureMVC内框架下所有对象的管理facade.RegisterCommand() //注册命令,将通知和命令绑定在一起facade.SendNotification() //发送通知,触发监听该通知的命令和MediatorInitializeController() { } //初始化控制层内容,这里应当为所有的Command命令进行注册SimpleCommand //即单个命令类,所有只负责一个业务且作为Command的类,应当继承该类,他必须要在Facade里注册并于通知绑定Execute() { } ...
UMVCSL5——角色面板View和Mediator
UMVCSL5——角色面板View和Mediator 本章大部分知识已在上一章讲过,这里不再阐述相同内容 View 123456789101112131415161718192021222324252627using UnityEngine;using UnityEngine.UI;public class NewRoleView : MonoBehaviour{ public Text txtLev; public Text txtHp; public Text txtAtk; public Text txtDef; public Text txtCrit; public Text txtMiss; public Text txtLuck; public Button btnClose; public Button btnLevUp; public void UpdateInfo(PlayerDataObject data) { txtLev.text =...
UMVCSL4——主面板View和Mediator
UMVCSL4——主面板View和Mediator 本章代码关键字 123456789101112Mediator //Mediator基类,任何在PureMVC内作为Mediator中介的类都应该继承该类,可以实现对其关联ViewUI界面的操作mediator.Name //字符串常量,其派生类里可以覆盖该Name,使用自己的字符串作为名字mediator.ViewComponent //该Mediator派生类对象关联的View类对象Mediator() //Mediator的构造函数,继承该类必须要声明构造函数调用该构造函数,用于初始化名字和关联的对象string[] ListNotificationInterests() { } //Mediator要监听哪些通知的方法,返回要监听的通知字符串数组HandleNotification(INotification notification) {...