2016-09-29 7 views
0

Beim Erstellen eines neuen Skripts in Einheit Ich habe ein Skript, das verschiedene Informationen ändert, die an die Datei angehängte Copyright-Informationen erzeugen, während die meisten Informationen entweder statisch oder prozedural den Namen des aktiven Programmierers bestimmen kann nicht auf irgendeine Weise bestimmt werden, ich versuche, ein Popup zu zeigen, bevor das Asset tatsächlich erstellt wird, nach dem Namen des Entwicklers fragend, aber meine gegenwärtige Methode stellt nur einen Fehler zur Verfügung, gibt es einen Weg herum dieses?Unity OnWillCreateAsset fragt nach DeveloperName

using UnityEngine; 
using UnityEditor; 

/* Project Name : Project Venom 
* Script Name : ScriptKeywordProcessor 
* Script Path : /Editor/ScriptKeywordProcessor.cs 
* Script Author : FaalFaazDov || Raistlin M. Thoreson 
*  Created On : 08/29/2016 12:46 
* Modified On : 09/28/2016 18:25 
*  Version : 1.1.0 
*/ 

/************************************************************************* 
* 
* Biophase Entertainment 
* __________________ 
* 
* [2016] Biophase Entertainment 
* All Rights Reserved. 
* 
* NOTICE: All information contained herein is, and remains 
* the property of Biophase Entertainment and its suppliers, 
* if any. The intellectual and technical concepts contained 
* herein are proprietary to Biophase Entertainment 
* and its suppliers and may be covered by Canadian and Foreign Patents, 
* patents in process, and are protected by trade secret or copyright law. 
* Dissemination of this information, reproduction of this material or attempting 
* to read the content of these files is strictly forbidden unless prior written 
* permission is obtained from Biophase Entertainment. 
* 
*/ 

internal sealed class ScriptKeywordProcessor : UnityEditor.AssetModificationProcessor { 

public string DeveloperName = ""; 

public static void OnWillCreateAsset(string path) { 

     EditorWindow window = EditorWindow.CreateInstance<ScriptKeywordProcessor>(); 
     window.Show(); 

} 

void OnGUI() { 

     GUILayout.Label ("Developer Name", EditorStyles.boldLabel); 
     DeveloperName = GUILayout.TextField (DeveloperName, 100); 

} 

} 

der Fehler ich recieving bin ist

Assets/Editor/ScriptKeywordProcessor.cs (39,38): Fehler CS0309: Der Typ ScriptKeywordProcessor zu UnityEngine.ScriptableObject um konvertierbar sein muss, es zu benutzen als Parameter in T der gattungsgemäßen Art oder der Methode UnityEngine.ScriptableObject.CreateInstance<T>()

Antwort

0

Von Ihrem Code ist ScriptKeywordProcessor kein EditorWindow, der von ScriptableObject geerbt wird.

Sie müssen eine andere Klasse definieren, die von EditorWindow übernommen wurde, um GUI-Funktionen auszuführen. Dann öffne dein Fenster in der OnWillCreateAsset Methode von ScriptKeywordProcessor.

Verwandte Themen