unity, 由scriptableObject创建.asset

由继承自scriptableObject的类X创建.asset文件。

假设类X的定义为:

[System.Serializable]

public class X : ScriptableObject {
    public float m_a;
}

方法一:写代码创建。

#if UNITY_EDITOR

string path = "Assets/Resources/x.asset";

X scriptableObj = ScriptableObject.CreateInstance<X> ();

UnityEditor.AssetDatabase.CreateAsset (scriptableObj, path);

UnityEditor.AssetDatabase.SaveAssets ();

UnityEditor.AssetDatabase.Refresh();
#endif

(补充:对于如上创建出来的x.asset,加载写法是:

若用assetDatabase加载:

#if UNITY_EDITOR

UnityEditor.AssetDatabase.LoadAssetAtPath("Assets/Resources/x.asset");

#endif

若用Resource.Load加载:

Resources.Load("x");

方法二:通过菜单创建。

在类X前添加CreateAssetMenu属性,会自动在系统create菜单中添加对应的菜单项。

[CreateAssetMenu(fileName="x",menuName="(custom) X")]

[System.Serializable]
public class X : ScriptableObject {
    public float m_a;
}

参考:

http://baba-s.hatenablog.com/entry/2015/06/13/000000

http://answers.unity3d.com/questions/1079664/how-do-i-use-the-createassetmenu-attribute.html

时间: 2024-12-17 01:03:14

unity, 由scriptableObject创建.asset的相关文章

使用ScriptableObject创建.asset文件

.asset一般用来存储一些配置,比如SDK初始化的相关参数. using System.Collections.Generic; using UnityEngine; namespace XXX { [CreateAssetMenu(fileName="xxx", menuName="xxx")] public class CommonConfig : ScriptableObject { [HideInInspector] public List<stri

unity, add object to asset and remove object from asset

//----create a scriptable object and add it to an existing asset                    CmyScriptableObject obj = ScriptableObject.CreateInstance<CmyScriptableObject> ();                    AssetDatabase.AddObjectToAsset(obj,existingAsset); // Reimport 

在unity使用ScriptableObject制作配置文件

今天是我发布的第一篇博文希望大家会喜欢,现在不像以前那么忙了,所以借着这些这个机会我会渐渐的把一切所学或者自己总结的东西慢慢地分享出来也希望大家能在技术的道路上越走越远. 好了废话不多说了,今天我就来讲一下如何使用ScriptableObject这个东西来制作配置文件,我们一般在做游戏开发的时候经常有需要制作配置文件的需求,这样可以给策划或者程序提供一个文件,他们只需要修改上面的值接可以达到修改游戏一些设置的目的,这样不用不断地去修改代码了. 很多人都会用到一些保存数据的文件,例如json,xm

unity, 用脚本创建mesh

创建一个空gameObject,添加Mesh Filter和Mesh Renderer两个component,再添加一个脚本createMeshScript: using UnityEngine;using System.Collections;[ExecuteInEditMode]public class createMeshScript : MonoBehaviour { void Awake() { gameObject.GetComponent<MeshFilter> ().mesh 

unity小工具 创建常用文件夹

当我们新建一个unity工程时候,并不会赠送我们一整套的资源文件夹目录,需要我们自己去手动创建,十分麻烦还有可能写错. 这里介绍一个小工具用来创建常用文件夹 在unity中创建一个脚本,直接上代码 using UnityEngine; using System.IO; #if UNITY_EDITOR using UnityEditor; #endif public class NewBehaviourScript : MonoBehaviour { #if UNITY_EDITOR [Menu

unity 使用代码创建子弹

//前提是创建子弹预制体,把预制体拉进BulletPrefab里面 using UnityEngine;using System.Collections; public class game : MonoBehaviour { public GameObject BulletPrefab; // Update is called once per frame void Update () {                                                     

unity 2Dtoolkit 插件创建中文字体

1.在做项目以及做小demo的时候需要使用到中文字体,但是2d toolkit 插件的demo里面没有中文字体,查找了一些资料发现可以自己制作自己喜欢和工作需要的字体. 2.我们首先需要以下工具辅助,首先我们先下载一个工具叫BitMap font generator,下载链接如下:http://www.angelcode.com/products/bmfont/,安装我们就不说了,打开BitMap font generator软件我们开始设置,点击options选择Fontsettings如下图

专业版Unity技巧分享:使用定制资源配置文件 ScriptableObject

http://unity3d.9tech.cn/news/2014/0116/39639.html 通常,在游戏的开发过程中,最终会建立起一些组件,通过某种形式的配置文件接收一些数据.这些可能是程序级别生成系统的一些参数,或许是手势识别系统的手势集,或任何其他东西.如果你是在Unity内部开发,很可能以创建一个可序列化的类来开始这项任务,这个类被设计成简单的容器,存储你所需要的所有配置数据. 但是那又怎样?现实中你是怎样把数据放到那个类里的?你是创建一堆XML 或 JSON文件,当游戏启动时加载

ScriptableObject本地序列化后重启Unity后报The associated script can not be loaded.Please fix any compile errors and assign a valid script的坑

踩坑 做编辑器一些设置序列化存在本地的时候,继承自ScriptableObject的类通过 创建的asset文件. 在重启Unity后查看这个asset发现上面的所有序列化属性丢失,报的错就是 在不存在的网站找了一番之后,找到答案 需要本地序列化的ScriptableObject必须拥有自己的同名实体脚本文件. 也就是在上图Scipt选项中能找到的类名.cs文件 Unity貌似会根据序列化的类名去找到这个脚本文件,重新检查脚本的可序列化项,最后才将能序列化的选项重新反序列化出来. 那问题知道了,