您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页Unity资源到底要怎样修改

Unity资源到底要怎样修改

来源:好走旅游网

Unity 资源修改整合

1. 现有Prefab 的修改

可以使用LoadPrefabContents, SaveAsPrefabAsset, UnloadPrefabContents的组合修改
例如

var resPath = "Assets/test.prefab";
var tempObj = PrefabUtility.LoadPrefabContents(resPath);
// 执行修改的内容,例如修改位置
tempObj.transform.position = centerPoses[i];
PrefabUtility.SaveAsPrefabAsset(tempObj, resPath);
PrefabUtility.UnloadPrefabContents(tempObj);

2. 实例化prefab同时要保持与原prefab的关联

先用AssetDatabase.LoadAssetAtPath, 再用PrefabUtility.InstantiatePrefab拷贝

var prefPath = GetMergePrefabPath(groupName);
var oriObj = AssetDatabase.LoadAssetAtPath<GameObject>(prefPath);
if (oriObj != null)
{
	var res = PrefabUtility.InstantiatePrefab(oriObj) as GameObject;
	return res;
}

3. 标记资源已经有变动

  • 标记场景 UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty
  • 标记资源 EditorUtility.SetDirty

4. 创建配置文件

  • 通过单独的C#文件,该文件名与有声明的class名称必须一致
  • 声明的class必须继承于ScriptableObject
  • 声明class的属性中有别的class或struct,必须让他们增加wrapper标记[System.Serializable]
    例如:
    [System.Serializable]
    public class OtherInsideData
    {
        public int dataa;
    }
    public class MainData: ScriptableObject
    {
    	public OtherInsideData dataa;
        public int datab;
    }
    
  • 创建配置文件必须使用ScriptableObject.CreateInstance
  • 由于配置文件为资源,切换场景会让该资源丢失,必须要注意

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务