【脚本笔记】EditorApplication

EditorApplication 是编辑器下的主要程序类,为我们提供丰富的方法和事件等。

静态变量

applicationContentsPath

  • 返回你当前Unity编辑器的Data文件路径。
  • D:/UnityVersions/2021.3.22f1c1/Editor/Data

applicationPath

  • 返回你当前Unity编辑器的执行文件位置。
  • D:/UnityVersions/2021.3.22f1c1/Editor/Unity.exe

contextualPropertyMenu

  • 每当用户在Inspector面版中右键点击组件属性时引发的回调。
  • 可以借助GenericMenu.AddItem追加操作项。

delayCall

  • 在所有Inspector面板更新之后调用一次。
  • 仅执行一次。

hierarchyWindowItemOnGUI

  • Hierarchy窗口中每个可见列表项的 OnGUI 事件的回调。
  • 可以利用此项回调绘制独特的UI反馈对象状态或组件情况。
  • 可以通过GameObject go = (GameObject)EditorUtility.InstanceIDToObject(instanceId);方式通过instanceId获取对应GameObject。
  • instanceId可能为null,一般为场景节点。

isCompiling

  • 编辑器当前是否正在编译脚本。

isPaused

  • 当前是否已暂停模式。
  • 可以设置是否暂停。
  • 等同于主工具栏中的Pause按钮。

isPlaying

  • 当前是否已播放模式。
  • 可以设置是否播放。
  • 等同于主工具栏中的Play按钮。
  • 设置true需要所有脚本代码编译完成之后。

isPlayingOrWillChangePlaymode

  • 当前是否是播放模式或者准备到播放模式。

isRemoteConnected

  • 编辑器当前是否已连接到 Unity Remote 4 客户端应用程序。
  • Unity Remote 是可下载的应用程序,旨在帮助进行 Android、iOS 和 tvOS 开发。从 Unity Editor 以播放模式运行项目时,该应用程序将与 Unity 连接。Editor 的可视输出将发送到设备的屏幕,而实时输入将发送回 Unity 中正在运行的项目。这样,您可以很好地了解您的游戏在目标设备上的真实视觉效果和处理方式,而又省去了针对每项测试进行完整构建的麻烦。
  • 安卓获取:Google Play
  • IOS获取:App Store
  • 安卓获取2:CSDN资源

isTemporaryProject

  • 项目是作为临时项目创建
  • 临时项目是通过Unity.exe使用"-temporary"命令行参数创建的项目
  • 位于文件系统中的临时位置(例如用户的 TEMP 或 TMPDIR 文件夹)
  • 关闭临时项目时,系统将提示用户为项目选择一个永久位置。
  • 可以使用EditorApplication.SetTemporaryProjectKeepPath关闭当前临时项目时将其重新定位到指定路径。

isUpdating

  • 当前编辑器是否正在刷新中。
  • 刷新包括AssetDatabase相关处理。

modifierKeysChanged

  • 键盘按键发生更改时回调。
  • Event.current为null,不能捕获到对应的按键值。

projectWindowItemInstanceOnGUI

  • Project窗口中创建时的 OnGUI 事件的回调。
  • 这里是创建时的,创建后是projectWindowItemOnGUI
  • 可以使用AssetDatabase.GUIDToAssetPath(guid)获取资源路径。

projectWindowItemOnGUI

  • Project窗口中每个列表项的 OnGUI 事件的回调。
  • 可以使用AssetDatabase.GUIDToAssetPath(guid)获取资源路径。
  • guid可能为null,一般为搜索文件夹或者根文件夹。

searchChanged

  • Hierarchy窗口搜索窗发生更改后回调。

timeSinceStartup

  • 自编辑器启动以来经过的时间。
  • 此属性不会在启动播放模式时重置。

update

  • 编辑器下的update的回调。

静态函数

Beep

public static extern void Beep();

  • 播放哔的声音。一般可用于发生错误,或者一些警告类,完成某些任务的声响。
  • 如果主板具有蜂鸣器则会蜂鸣器响,如果没有则需要音响或者耳机连接。

DirtyHierarchyWindowSorting

public static void DirtyHierarchyWindowSorting()

  • Hierarchy视图排序设置为“脏”的方法。
  • 主要目的使层级视图重置排序。

EnterPlaymode

public static void EnterPlaymode()

  • 将编辑器切换为运行模式。
  • 核心就是isPlaying = true;

ExecuteMenuItem

public static extern bool ExecuteMenuItem(string menuItemPath);

  • 调用指定MenuItem配置的方法。
  • EditorApplication.ExecuteMenuItem("GameObject/3D Object/Cube");会在场景里创建个Cube。

Exit

public static extern void Exit(int returnValue);

  • 退出 Unity 编辑器应用程序。
  • 调用此函数将立即退出,而不会要求保存更改,可能会丢失数据
  • 此函数对于退出发生特定错误的命令行进程极为有用。

ExitPlaymode

public static void ExitPlaymode()

  • 将编辑器切换为编辑模式。
  • 核心就是isPlaying = false;

LockReloadAssemblies

public static extern void LockReloadAssemblies();

  • 锁定加载程序集。
  • 防止在不方便时加载程序集。
  • 例如:在拖动操作期间,需要防止程序集重新加载,以免在拖动过程中丢失状态。
  • 通过EditorApplication.UnlockReloadAssemblies解锁状态。
  • Unity 会自动阻止在鼠标按下时重新加载。

UnlockReloadAssemblies

public static extern void UnlockReloadAssemblies();

  • 解锁加载程序集。
  • 通过EditorApplication.LockReloadAssemblies锁定状态。
  • 必须在EditorApplication.LockReloadAssemblies之后调用,以重新启用程序集的加载过程。

OpenProject

public static void OpenProject(string projectPath, params string[] args)

  • 打开另一个项目。
  • projectPath项目路径,args命令参数。
  • 此函数不会立即退出,它将在执行函数返回后打开另一个项目。

QueuePlayerLoopUpdate

public static void QueuePlayerLoopUpdate()

  • 编辑器循环更新。
  • 将场景标记“脏”从而重新刷新。
  • 强制重绘任何将EditorWindow.autoRepaintOnSceneChange=true的窗口。
  • 更新任何标有[ExecuteInEditMode]的脚本或MonoBehaviour.runInEditMode=true

RepaintHierarchyWindow

public static void RepaintHierarchyWindow()

  • 重绘 Hierarchy 窗口。
  • EditorApplication.hierarchyWindowItemOnGUI将会重绘。

RepaintProjectWindow

public static void RepaintHierarchyWindow()

  • 重绘 Project 窗口。
  • EditorApplication.projectWindowItemOnGUIEditorApplication.projectWindowItemInstanceOnGUI将会重绘。

SetTemporaryProjectKeepPath

public static extern void SetTemporaryProjectKeepPath(string path);

  • 设置 Unity 在关闭当前的临时项目时应在哪个路径存储该项目。
  • path关闭当前临时项目时应将其重新定位到的路径。
  • 如果EditorApplication.isTemporaryProject不为 true,则调用此 API 会出错。

Step

public static extern void Step();

  • 执行单帧步骤。
  • 等同于主工具栏中的 Step 按钮。

事件

hierarchyChanged

  • 当层级视图中的对象或对象组发生更改时引发的事件。
  • 触发此事件的操作包括在当前层级视图中创建对象以及对其进行重命名、重定父级或销毁,以及加载、卸载、重命名或重新排序已加载的场景。请注意,系统不会为响应这些操作而立即引发该事件,而是会在下一次更新编辑器应用程序期间发送。
  • 对已设置HideFlags.HideInHierarchy的对象执行的操作不会引发此事件,但更改Object.hideFlags会引发此事件。

pauseStateChanged

  • 每当编辑器的暂停状态发生更改时引发的事件。
  • EditorApplication.isPausedEditorApplication.isPlayingEditorApplication.EnterPlaymode(),EditorApplication.ExitPlaymode()会影响次回调。

playModeStateChanged

  • 每当编辑器的播放状态发生更改时引发的事件。
  • EditorApplication.isPausedEditorApplication.isPlayingEditorApplication.EnterPlaymode(),EditorApplication.ExitPlaymode()会影响次回调。

projectChanged

  • 每当项目的状态发生更改时引发的事件。
  • 触发此事件的操作包括创建资源或对其进行重命名或重定父级,以及移动或重命名项目中的文件夹。
  • 系统不会立即响应这些操作而引发该事件,而是会在下一次更新编辑器应用程序期间引发。
  • 已设置HideFlags.HideInHierarchy的资源执行的操作不会引发此事件。

quitting

  • 当编辑器应用程序退出时,Unity 会触发此事件。
  • 如果编辑器被迫退出或发生崩溃,则不会触发此事件。
  • 无法取消退出进程时会引发此事件。

wantsToQuit

  • 当编辑器应用程序想要退出时,Unity 会引发此事件。
  • 引发此事件时,退出过程已开始但可以取消。
  • 返回true,并且退出进程将继续。 返回false,并且退出进程将取消。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值