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

基于php的网站建设思路方案企业网站设计

基于php的网站建设思路方案,企业网站设计,做网站哪个语言强,有域名后怎么做网站1 前言 Unity 中资源管理方案主要有 Resources、TextAsset、ScriptableObject 、AssetDatabase、PlayerPrefs、Addressables、AssetBundle、SQLite,本文将介绍其中大部分方案。 2 Resources Resources 主要用于加载资源,被加载的资源需要放在 Resources…

1 前言

        Unity 中资源管理方案主要有 Resources、TextAsset、ScriptableObject 、AssetDatabase、PlayerPrefs、Addressables、AssetBundle、SQLite,本文将介绍其中大部分方案。

2 Resources

        Resources 主要用于加载资源,被加载的资源需要放在 Resources 目录下,可以在 Assets 的任何子目录下创建 Resources 目录,Unity 会自动检索到这些 Resources 目录。

        Test_Resources.cs

using UnityEngine;public class Test_Resources : MonoBehaviour {private void Awake() {GameObject cube = Resources.Load<GameObject>("CubePrefab");Material cubeMat = Resources.Load<Material>("CubeMat");cube.GetComponent<Renderer>().material = cubeMat;Instantiate(cube);}
}

3 TextAsset

        TextAsset 主要用于加载文本、表格文件,官方介绍见→TextAsset。

        Test_TextAsset.cs

using UnityEngine;public class Test_TextAsset : MonoBehaviour {[SerializeField]private TextAsset heightDatas;private void Awake() {string[] textInLines = heightDatas.text.Split('\n');for (int i = 1; i < textInLines.Length; i++) {string[] values = textInLines[i].Split(",");string name = values[0];int age = int.Parse(values[1]);float height = float.Parse(values[2]);Debug.Log("name=" + name + ", age=" + age + ", height=" + height);}}
}

        打印如下。

4 ScriptableObject

        ScriptableObject 主要用于持久化数据、项目参数配置、角色参数配置等,官方介绍见→ScriptableObject,主要回调函数如下,继承 ScriptableObject 后,重写下述方法即可在相应状态下自动回调。

        SOData.cs

using UnityEngine;public class SOData : ScriptableObject {[SerializeField]private string _name; // 姓名[SerializeField]private int _age; // 年龄[SerializeField, Range(1f, 2.3f)]private float _height; // 身高public string Name => _name;public int Age => _age;public float Height => _height;
}

        编译后,在 Assets 窗口右键,依次选择【Create→SOData】,创建对象,并重命名为 SOData_1。选中 SOData_1 对象后,在 Inspector 窗口可以调整属性,如下。

5 AssetDatabase

        AssetDatabase 用于加载资源,仅在 Unity 编辑器模式下使用,官方介绍见→AssetDatabase、Batching with the AssetDatabase。

AssetDatabase.CopyAsset("Assets/Asset1.txt", "Assets/Text/Asset1.txt"); // 复制资源
AssetDatabase.MoveAsset("Assets/Asset2.txt", "Assets/Text/Asset2.txt"); // 移动资源
AssetDatabase.DeleteAsset("Assets/Asset3.txt"); // 删除资源
AssetDatabase.ImportAsset(path1, ImportAssetOptions.Default); // 导入资源
GameObject cube = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Loader/CubePrefab.prefab"); // 加载资源

        Test_AssetDatabase.cs

using UnityEditor;
using UnityEngine;public class Test_AssetDatabase {[MenuItem("Custom/Import Cube")]public static void ImportImage() {// 导入Cube预设体string path1 = "Assets/Loader/CubePrefab.prefab";AssetDatabase.ImportAsset(path1, ImportAssetOptions.Default);GameObject cube = AssetDatabase.LoadAssetAtPath<GameObject>(path1);// 导入Cube材质string path2 = "Assets/Loader/CubeMat.mat";AssetDatabase.ImportAsset(path2, ImportAssetOptions.Default);Material mat = AssetDatabase.LoadAssetAtPath<Material>(path2);// 实例化Cubecube.GetComponent<Renderer>().material = mat;GameObject.Instantiate(cube);}
}

        说明:Test_AssetDatabase 脚本文件需要放在 Editor 目录下面。编译后,在菜单栏依次点击【Custom→Import Cube】即可创建一个 Cube 对象。

6 PlayerPrefs

        PlayerPrefs 是一个在游戏会话之间存储玩家偏好的类,它可以将字符串、浮点数和整数值存储到用户的平台注册表中。Unity 将 PlayerPrefs 存储在本地注册表中,没有加密,不要使用 PlayerPrefs 数据存储敏感数据。PlayerPrefs 官方介绍见→PlayerPrefs。

        PlayerPrefs 的静态方法如下。

        Test_PlayerPrefs.cs

using UnityEngine;public class Test_PlayerPrefs : MonoBehaviour {private void Awake() {PlayerPrefs.SetString("name", "Zhang san");PlayerPrefs.SetInt("age", 25);PlayerPrefs.SetFloat("height", 1.75f);Debug.Log("name=" + PlayerPrefs.GetString("name")+ ", age=" + PlayerPrefs.GetInt("age")+ ", height=" + PlayerPrefs.GetFloat("height"));}
}

        打印日志如下。

7 Addressables

        Addressables 包提供了组织和打包应用内容的工具和脚本,在运行时可以加载和释放资源,官方介绍见→Addressables。

        1)安装 Addressables

        在菜单栏依次选择【Window→Package Manager】,打开包管理器,按照以下步骤安装 Addressables。

        2)设置资源为 Addressable

        在 Assets 窗口选中资源,在 Inspector 窗口勾选 Addressable,并修改资源 Key,如下。

        3)分组管理 Addressables

        在菜单栏依次选择【Window→Asset Management→Addressables→Groups】,打开 Addressables Groups 窗口,如下。

        可以拖拽 Addressables Groups 窗口,使其停靠在 Game 窗口旁边,如下。可以看到 Resources 目录下的资源会自动添加到 Addressables 中。

        依次点击【New→Packed Assets】,创建新包,并重命名,便于对资源进行分组管理,如下。

        4)加载资源

        Test_Addressables.cs

using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;public class Test_Addressables : MonoBehaviour {private GameObject cube;private void Awake() {Addressables.InstantiateAsync("CubePrefab2").Completed += OnInstantiate;}private void OnInstantiate(AsyncOperationHandle<GameObject> operationHandle) { // 游戏对象加载成功回调函数cube = operationHandle.Result;Addressables.LoadAssetAsync<Material>("CubeMat2").Completed += OnLoadAsset;}private void OnLoadAsset(AsyncOperationHandle<Material> operationHandle) { // 材质加载成功回调函数cube.GetComponent<Renderer>().material = operationHandle.Result;}
}

        说明:引入 UnityEngine.AddressableAssets 和 UnityEngine.ResourceManagement.AsyncOperations 这两个命名空间时,在 VSCode 中可能会报错,但 Unity 中不会报错,也不影响程序运行。如果想消除 VSCode 中的这个报错,可以重启一下 Unity 和 VSCode,就不会报错了。

http://www.zhongyajixie.com/news/31695.html

相关文章:

  • 汽车html静态网站品牌营销推广方案
  • 广西网红排名第一是谁站长工具之家seo查询
  • 珠海cp网站建设排名第一的手机清理软件
  • 网站下拉菜单百度账号人工客服
  • 珠海企业网站建设公司seo是什么职位简称
  • 广西建设教育协会网站关键词
  • 网站建设平台多少钱电脑系统优化工具
  • 浙江网页设计seo搜索优化工程师招聘
  • 帮诈骗团伙做网站属于诈骗吗bing搜索引擎下载
  • 网站后台开发 必备技能b2b电子商务网站都有哪些
  • b站有推广吗宁波seo推广优化公司
  • 厦门网站公司小程序开发平台官网
  • 株洲网站建设和制作站长之家最新网站
  • 做百度网站网站正能量免费推广软件
  • 怎样做号网站优化廊坊seo排名外包
  • 网站上做独立博客如何网站seo
  • 重庆新闻网首页seo职位招聘
  • 北京西站是疫情区吗全网关键词搜索排行
  • opencart做外贸网站怎样企业网站有什么
  • 东莞网站的制作设计百度站长统计工具
  • 广东省建设交易中心网站首页seo排名优化排行
  • 阜新网站开发公司网络销售工资一般多少
  • 推广赚钱网免费关键词排名优化
  • 个人网站建设优化百度seo发帖推广
  • 谁给个网站呀公司网站定制
  • wordpress升级文章编辑器seo是什么意思的缩写
  • 重写路由 wordpress百度seo收费
  • 国家工商网企业查询官网怎样优化网站排名
  • 广东网站建设包括什么百度推广下载
  • 做自己的建材配送网站海底捞口碑营销