Unity编辑器拓展9_物体操作相关类

1、Selection

通过Selection类可以在编辑器下对选择的对象进行操作

  • Selection.activeObject

返回当前在Hierarchy面板上或Project文件夹下选择的对象Object,未选择则返回Null(选择多个则返回第一个选择的物体)

Debug.Log(Selection.activeObject.name);

  • Selection.activeGameObject

返回当前在Hierarchy面板上或Project文件夹下选择的游戏物体GameObject,未选择则返回Null(选择多个则返回第一个选择的游戏物体)Project目录下只能选中预制体

Debug.Log (Selection.activeGameObject);

  • Selection.activeTransform

返回当前在Hierarchy面板上选择的游戏物体的Transform,未选择则返回Null(选择多个则返回第一个选择的游戏物体)

  • Selection.objects

返回当前在Hierarchy面板上或Project文件夹下选择的对象Object数组,未选择则数组长度则为0

  • Selection.gameObjects

返回当前在Hierarchy面板上或Project文件夹下选择的游戏物体GameObject数组,未选择则数组长度则为0

  • Selection.GetFiltered

返回Project文件夹下按类型和模式过滤选择后的结果

Texture[] textures = Selection.GetFiltered<Texture>(SelectionMode.Assets);

for (int i = 0; i < textures.Length; i++)

{

    Debug.Log(textures[i]);

}
  • Selection.transforms

返回当前在Hierarchy面板上选择的游戏物体Transform数组,未选择则数组长度则为0

  • Selection.assetGUIDs

返回当前在Project文件夹下选择的资源GUID数组,通过GUID可以获取到资源的具体路径

string[] guids = Selection.assetGUIDs;

foreach (var temp in guids)

{

    Debug.Log(AssetDatabase.GUIDToAssetPath(temp.ToString()));

}

  • Selection.instanceIDs

返回当前在Hierarchy面板上或Project文件夹下选择的物体的instanceID

  • Selection.Contains

判断选择的是否包含某个物体或instanceId

  • Selection.SetActiveObjectWithContext和Selection.activeContext

这两个需要搭配使用,只有用SetActiveObjectWithContext设置后才能通过activeContext获取

  • selectionChanged

选择的对象变化时的回调函数

public class SelectionTest : MonoBehaviour

{

    private void Awake()

    {

        Selection.selectionChanged += OnSelectionChange;

    }



    /// <summary>

    /// 选择的物体变化时调用的委托

    /// </summary>

    private static void OnSelectionChange()

    {

        Debug.Log("OnSelectionChange");

    }

}

2、AssetDatabase

AssetDatabase是一个API,它允许您访问您项目中的资源。它提供了查找资源、加载资源、创建资源、删除资源和修改资源的方法。Unity 编辑器内部使用AssetDatabase保持跟踪资源文件和保持资源与引用他们的对象之间的关联。由于Unity需要保持跟踪项目文件夹中有所更改,如果你想访问或修改的资源数据,你应该始终使用AssetDatabase API,而不是系统文件。

AssetDatabase.ImportAsset("Assets/UI/cube.png", ImportAssetOptions.Default);

导入资源

AssetDatabase.LoadAssetAtPath("Assets/UI/cube.png", typeof(Texture2D)) as Texture2D;

加载资源

AssetDatabase.GetAssetPath(t)

获取资源在文件中的路径

AssetDatabase.CreateAsset(material, "Assets/Materials/myMaterials.mat");

将资源创建到文件中

AssetDatabase.RenameAsset("Assets/Materials/myMaterials.mat", "mynewMaterials");

资源重命名

AssetDatabase.MoveAsset("Assets/Materials/mynewMaterials.mat", "Assets/NewFolder");

将资源移动文件路径

AssetDatabase.CopyAsset("Assets/NewFolder/mynewMaterials.mat", "Assets/Materials/myMaterials.mat"));

赋值资源

AssetDatabase.MoveAssetToTrash(“Path”)

将资源移入回收站

AssetDatabase.DeleteAsset("路径r")

将资源删除

AssetDatabase.Refresh();

刷新文件夹

3、EditorUtility

EditorUtility.DisplayProgressBar(title, "信息", 3f);

显示或更新进度条

EditorUtility.ClearProgressBar();

删除进度条

EditorUtility.DisplayDialog(title, "消息", "OK");

显示模态对话框

EditorUtility.OpenFilePanel(title, "D:/", "扩展名");

显示打开文件 对话框并返回所选的路径名称

EditorUtility.OpenFolderPanel(title, "D:/学习", "默认名字");

显示打开文件夹 对话框并返回所选的路径名称

EditorUtility.SaveFilePanel(title, "D:/学习", "默认名字", "扩展名");

显示“保存文件”对话框并返回所选的路径名称。

EditorUtility.SaveFolderPanel(title, "D:/学习", "默认名字");

显示“保存文件夹”对话框并返回所选的路径名称。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值