当前位置: 首页 > news >正文

益阳做网站公司网站如何做软文推广

益阳做网站公司,网站如何做软文推广,html网页制作的软件下载,dw网页设计免费下载正文 主要方法#xff1a; ScriptableObjectPlayerPrefsJSONXML数据库#xff08;如Sqlite#xff09; 1. PlayerPerfs PlayerPrefs 存储的数据是全局共享的#xff0c;它们存储在用户设备的本地存储中#xff0c;并且可以被应用程序的所有部分访问。这意味着#xf…正文 主要方法 ScriptableObjectPlayerPrefsJSONXML数据库如Sqlite 1. PlayerPerfs PlayerPrefs 存储的数据是全局共享的它们存储在用户设备的本地存储中并且可以被应用程序的所有部分访问。这意味着无论在哪个场景、哪个脚本中只要是同一个应用程序中的代码都可以读取和修改 PlayerPrefs 中的数据。 这意味着耦合性的增加、安全性的降低。它适合存储少量的基本数据比如玩家的偏好设置、游戏设置、游戏进度等但不适合存储大量或复杂的数据结构。 注意 每次Set完数据要调用PlayerPrefs.Save()把数据写入磁盘。Get有两个参数第一个是键名第二个是没找到时传入的默认值。 int highScore 1000; PlayerPrefs.SetInt(HighScore, highScore); // 记得保存 PlayerPrefs.Save();// 没找到就返回3 int score PlayerPrefs.GetInt(Score, 3);2. ScriptableObject ScriptableObject的值在播放模式之后不会恢复原样会保留修改 可以用于只读和读写两种数据不过原则上还是只用于只读数据。 ScriptableObject 并不依赖于游戏对象GameObject也不受场景加载和卸载的影响。它的生命周期是由 Unity 引擎管理的。 使用流程 派生自ScriptableObject创建基类实例化后由编辑器对实例进行配置其他C#脚本使用某个实例合理使用OnValidate()方法这是ScriptableObject中的值更改时触发的事件但是仅限在编辑器使用 下述代码在数值发生变化时触发定义的valueChanged事件。注意需要在其他脚本中向 valueChanged 事件添加侦听器才能响应 // 代码源自参考链接2 using UnityEngine; using UnityEngine.Events;[CreateAssetMenu(fileName NewWeapon, menuName Game/Weapon)] public class WeaponScriptableObject : ScriptableObject {public string weaponName;public int damage;public Sprite icon;[SerializeField, Range(0, 100)]private int maxHealth;// Define a UnityEvent with no argumentspublic UnityEvent valueChanged;#if UNITY_EDITORprivate void OnValidate(){// This method is called in the Unity Editor whenever a value is changed.// Invoke the UnityEvent when values change.if (UnityEditor.EditorApplication.isPlaying){valueChanged.Invoke(); // Fire the UnityEvent}} #endif }这里要注意的是类似于[CreateAssetMenu(fileName mySharedData, menuName SharedData/MySharedData, order 1)]这样的东西意思是 fileName新创建实例的默认文件名为mySharedData。menuName在“Assets/Create”菜单中显示的类型条目名称为SharedData下的MySharedData。order菜单项在“Assets/Create”菜单中的位置为1显示靠前的优先级 由于SO尽量存储运行时不更改的数据所以要修改当前的生命值会考虑如下方法。此处PlayerXP实际上是个引用在Unity中当一个类的成员是另一个类的实例时默认情况下它就是引用类型不需要额外的标记我是对比着[SerializeReference]来看见下文 public class PlayerXP {public int XP 100; }public class PlayerData : ScriptableObject {public PlayerXP PlayerXP; } PlayerData playerData GetComponentPlayerData(); playerData.PlayerXP.XP 200;注引用类型的序列化通常会占用更多的存储空间和加载时间性能降低 3. 序列化Json、XML与二进制 using UnityEngine;[System.Serializable] public class PlayerData {public string playerName;public int playerScore; }关于序列化 必须是public类其中的字段或者属性必须是可序列化的类中的方法不会被序列化构造函数不可以被序列化 不可以序列化的数据类型 静态类或静态成员Static Members委托Delegate事件Event指针Pointer索引器Indexers 静态成员是属于整个类的但是序列化和反序列化是构造一个类的实例的 // 保存 string json JsonUtility.ToJson(sourceObject); System.IO.File.WriteAllText(playerData.json, json); // 读取 string json System.IO.File.ReadAllText(playerData.json); SomeClass loadedPlayer JsonUtility.FromJsonSomeClass(json);json是字符串文本XML是标记语言本身还是文本二进制就是01序列。二进制在数据存储和传输的效率、紧凑性和速度上占有优势但丧失了内容的可读性 二进制有很多种方案 protobuf (Protocol Buffers谷歌研发的一种二进制序列化格式)MessagePack 我们可以在官方仓库找到使用说明Github - MessagePack-CSharp 注几个含Serialize的相关属性 [Serializable]是一个 C# 中的特性它告诉编译器这个类可以被序列化。[SerializeReference] 是 Unity 2019.3 引入的新特性用于处理多态对象的序列化使得可以在 Inspector 窗口中为该字段分配任意继承自同一父类的对象。[SerializeField]这个是把Private变量暴露到Inspector中的跟上面那俩没关系 注标记为 [Serializable] 的类需要自行确保其内容是可序列化的。该标记的作用仅是告诉编译器这个类可以被序列化但是不对内容做任何保证如果存在不可被序列化的字段则会被忽略不会引起报错。此外还要避免类中存在循环引用例如类 A 包含类 B 的实例而类 B 又包含类 A 的实例 // example using UnityEngine; using System;[Serializable] public class Shape {public float area;public virtual void Draw() { } }[Serializable] public class Circle : Shape {public float radius;public override void Draw(){Debug.Log(Drawing a circle);} }[Serializable] public class Rectangle : Shape {public float width;public float height;public override void Draw(){Debug.Log(Drawing a rectangle);} }public class ShapeHolder : MonoBehaviour {[SerializeReference]public Shape shape; }4. 数据库 数据库通常用于存储大量结构化数据例如用户信息、游戏配置、游戏关卡数据、成就和统计信息等。相较于ScriptableObject、PlayerPrefs、JSON和XML文件数据库的优势在于能够更灵活地管理和查询大量数据并支持复杂的数据结构和关联查询。 数据库的优势包括 数据结构灵活数据库可以存储和管理复杂的数据结构支持表与表之间的关联适用于需要大量结构化数据的场景。查询功能强大数据库引擎提供强大的查询功能可以进行复杂的数据筛选、排序和统计分析。数据持久化数据库中的数据可以持久保存不受应用程序生命周期的影响适用于长期存储和管理数据。并发处理数据库引擎通常支持并发处理能够处理多个用户同时对数据进行读写的情况。数据安全性数据库可以提供数据加密、权限控制等安全功能保护数据不被未授权访问。 参考与进一步阅读 PavCreations - Data persistence or how to save / load game data in Unity Medium - A Beginner’s Guide to Storing and Retrieving Data in Unity Medium - “How to Harness the Power of Scriptable Objects in Unity” CSDN - 个人技术总结——Unity3D ScriptableObject实现多存档 CSDN - 【图文详解】Unity存储游戏数据的几种方法
http://www.w-s-a.com/news/991880/

相关文章:

  • 网站主机一般选哪种的企业数字展厅
  • 网站建设该如何学衡水建设局网站首页
  • 高校网站建设工作总结番禺网站开发哪家好
  • 苏州 网站的公司wordpress主页代码
  • 怎么用html做图片展示网站外贸网站建设推广费用
  • 可以做本地生活服务的有哪些网站中油七建公司官网
  • 如何建设谷歌网站网站建设优点
  • 做网站的目标是什么产品宣传片制作公司
  • 柳州建设公司网站辽宁建设工程信息网评标专家入库
  • 合肥建设学校官方网站excel导入wordpress
  • 禹城网站设计做网站需要考虑哪些
  • 深圳做营销网站建设wordpress添加文章封面
  • 阿里云的网站建设方案织梦和wordpress哪个安全
  • 聊城网站建设公司电话wordpress怎么重新配置文件
  • 创业如何进行网站建设泰州公司注册
  • 免费网站建设培训学校手机百度高级搜索入口在哪里
  • 建站经验安徽六安发现一例新冠阳性检测者
  • 滨州内做网站系统的公司汕头网络营销公司
  • 苏州制作网站的公司哪家好wordpress google搜索
  • c语言做项目网站wordpress博客被书为什么还
  • 企业建站用什么系统网站建设补充协议模板
  • 常州网站关键字优化淘客网站怎么做排名
  • 全flash网站制作教程网站做进一步优化
  • 建设网站步骤是如何做自媒体和网站签约赚点击
  • 网站建设的闪光点网站 备案 拍照
  • 那些企业需要做网站九洲建设集团网站
  • 中山企业做网站昆明做网站价格
  • wordpress 新网站 代码网站可以做系统还原吗
  • 百度给做网站公司餐饮设计装饰公司
  • 专门卖医疗器械的网站网站建设方案一份