2013-04-17 9 views
5

मेरे पास एक कस्टम विंडो है जो ऑब्जेक्ट्स की एक सूची दिखाती है। इनमें से प्रत्येक ऑब्जेक्ट में एक कस्टम इंस्पेक्टर संपादक है।कस्टम विंडो पर एकता कस्टम इंस्पेक्टर

कस्टम विंडो के अंदर कस्टम इंस्पेक्टर दिखाना संभव है?

उत्तर

5

आप इंस्पेक्टर विंडो की तुलना में कहीं और अपने कस्टम इंस्पेक्टर को आकर्षित करने के लिए Unity3D को मजबूर नहीं कर सकते हैं।

बीटीडब्ल्यू आप विधि का उपयोग कर Editor मैन्युअल रूप से instatiate कर सकते हैं। चूंकि आप एक कस्टम इंस्पेक्टर प्रदर्शित कर रहे हैं, इसकी तुलना में मैन्युअल रूप से Window.OnGUI विधि से इसे तुरंत चालू करना संभव है, और अपनी विंडो के अंदर संपादक को आकर्षित करने के लिए संपादक के OnInspectorGUI संपादक का उपयोग करें।

उदाहरण के लिए, आप एक स्क्रिप्ट एक GameObject को CustomScript बुलाया संलग्न किया है और एक संबंधित है EditorCustomScriptEditor कहा जाता है, मान आप पदानुक्रम से GameObject का चयन किया है, इस कोड को एक EditorWindow अंदर कस्टम निरीक्षक कल्पना करता है, तो:

using UnityEditor; 
using UnityEngine; 


public class TestWindow : EditorWindow 
{ 

    [MenuItem ("Window/Editor Window Test")] 
    static void Init() 
    { 
     // Get existing open window or if none, make a new one: 
     TestWindow window = (TestWindow)EditorWindow.GetWindow (typeof (TestWindow)); 
    } 

    void OnGUI() { 

     GameObject sel = Selection.activeGameObject; 

     CustomScript targetComp = sel.GetComponent<CustomScript>(); 

     if (targetComp != null) 
     { 
      var editor = Editor.CreateEditor(targetComp); 
      editor.OnInspectorGUI();    
     } 

    } 
} 
+0

बढ़िया! Startcrollview के साथ भी अच्छी तरह से काम करें! – Klamore74

संबंधित मुद्दे