swamy456 Ответов: 1

Ошибка CS0117: `unityeditorinternal.internaleditorutility' не содержит определения для `addscriptcomponentunchecked'


AssetDatabase.Refresh();
		AssetDatabase.ImportAsset( path, ImportAssetOptions.ForceSynchronousImport );

		var gameObj = target.gameObject;
		var script = AssetDatabase.LoadAssetAtPath( path.MakeRelativePath(), typeof( MonoScript ) ) as MonoScript;
		InternalEditorUtility.AddScriptComponentUnchecked( gameObj, script );

		#region Delayed execution

		// Declared with null value to eliminate "uninitialized variable" 
		// compiler error in lambda below.
		EditorApplication.CallbackFunction callback = null;


Что я уже пробовал:

Я ничего не меняю в этом коде.

1 Ответов

Рейтинг:
1

Thomas Daniels

AddScriptComponentUnchecked находится в классе InternalEditorUtility, поскольку он не предназначен для публичного использования, поэтому он может измениться в любое время без предварительного уведомления[^], и похоже, что вы используете версию Unity, которая слишком нова, чтобы использовать этот метод.

Вы должны проверить, есть ли способ использовать публичные методы, чтобы сделать то, что вы хотите. Если вы думаете, что это не так, то вы можете использовать отражение для доступа к частному AddScriptComponentUncheckedUndoable метод InternalEditorUtility (но если вы можете избежать этого, то избегайте этого). Для этого смотрите обзор WolfieMario, чтобы в 'диалоге создания сценария активов единство [^] и приспособьте это к своему коду.