Version: 5.4

説明

選択が変更されるたび呼び出されます


Saves the current selection and load it later with a simple click.

// Simple example that lets you save the current selection and load it.
 
using UnityEngine;
using UnityEditor;
using System.Collections;
 
public class ExampleClass : EditorWindow {
   
    private int[] selectionIDs;
 
    [MenuItem ("Example/Selection Saver")]
 
    private static void Init() {
        ExampleClass window = (ExampleClass)GetWindow(typeof(ExampleClass));
        window.Show();
    }
 
    void OnGUI() {
        if(GUILayout.Button("Save"))
            SaveSelection();
        if(GUILayout.Button("Load"))
            LoadLastSavedSelection();
    }
 
    void OnSelectionChange() {
        selectionIDs = Selection.instanceIDs;
    }
 
    private void SaveSelection() {
        var saveStr = "";
        foreach(int i in selectionIDs) {
            saveStr += i.ToString() + ";";
        }
        saveStr = saveStr.TrimEnd(char.Parse(";"));
        EditorPrefs.SetString("SelectedIDs",saveStr);
    }
 
    private void LoadLastSavedSelection() {
        string[] strIDs = EditorPrefs.GetString("SelectedIDs").Split(char.Parse(";"));
 
        int[] ids = new int[strIDs.Length];
        for(var i = 0; i < strIDs.Length; i++)
            ids[i] = int.Parse(strIDs[i]);
        Selection.instanceIDs = ids;
    }
}
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961