包含标签 unity 的文章

Unity资源常用目录和路径大总结

转载自:Unity资源常用目录和路径大总结 参考1:unity不同平台下的路径和读写权限 参考2:#你好Unity3D#手机上的路径(来自我的长微博) 参考3:Unity3D研究院之Android同步方法读取streamingAssets(八十八) 一、资源路径 字段 说明 Application.dataPath 包含游戏在目标平……

阅读全文

Unity中的UGUI

基本组件 Text 需要使用TTF字体,RaycastTarget选项决定组件是否响应点击事件。可使用 Outline 和 Shadow 组件为文本描边和添加阴影。描边的效率低于阴影。 Image 图片类型(Image Type)分为四种: Simple 直接显示图片 Sliced 通过九宫格方式显示图片,可用 SpriteEditor 来编辑九宫格的区域 Tiled 平铺图片 Filled 像技能CD一样,可……

阅读全文

Unity中的IMGUI

什么是 IMGUI 即时模式 GUI 系统(也称为 IMGUI)是一个完全独立的功能系统,不同于 Unity 基于游戏对象的主 UI 系统,IMGUI 需在实现脚本上调用 OnGUI 函数,并在其中实现绘制 UI 的代码。 IMGUI 作用 创建游戏内调试显示和工具。 为脚本组件创建自定义检视面板。 创建新的编辑器窗口和工具以扩展 Unity 本身。 控件 Label Button RepeatButton TextField TextArea Toggle ToolBar……

阅读全文

Unity之动态将场景添加到BuildSettings中

代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #region 将场景添加到 Build Settings // 场景存放目录 var sceneDir = $"{Application.dataPath}/Scenes"; var sceneFiles = Directory.GetFiles(sceneDir, "*.unity", SearchOption.AllDirectories); var scenes = new EditorBuildSettingsScene[sceneFiles.Length]; for (var i = 0; i < sceneFiles.Length; i++) { // 替换斜杠 var sceneFile = sceneFiles[i].Replace("\\", "/"); // 使用相对路径 var assetsFolderIndex = sceneFile.IndexOf("Assets", StringComparison.Ordinal); sceneFile = sceneFile.Substring(assetsFolderIndex); var scene = new EditorBuildSettingsScene(sceneFile, true); scenes[i] = scene; } EditorBuildSettings.scenes = scenes; #endregion……

阅读全文

Unity中使用Addressable

使用步骤 标记资源为Addressable 方式一:在资源的Inspector界面 方式二:在 Addressables Groups 窗口 构建可寻址内容(Addressable Content) 方式一:使用 Editor 在 Addressables Groups 窗口右上角选择 Build > New Build > Default Build Script. 方式二:使用脚本 API AddressableAssetSettings.BuildPlayerContent() 使用 Addressable 资源 方式一:通过 address 加载或实例化资源 加载资源 Addressables.LoadAssetAsync<GameObject>("AssetAddress"); 实例化资源 Addressables.InstantiateAsync("AssetAddress"); 示例: 1 2 3……

阅读全文

Unity中使用CustomEditor自定义脚本的Inspector面板

自定义脚本 1 2 3 4 5 6 7 8 9 10 using UnityEngine; public class LookAtPoint : MonoBehaviour { public Vector3 lookAtPoint = Vector3.zero; void Update() { transform.LookAt(lookAtPoint); } } 使用 CustomEditor 特性 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 using UnityEngine; using UnityEditor; [CustomEditor(typeof(LookAtPoint))] // 指定为哪个组件自定义编辑器界面 [CanEditMultipleObjects] // 指示Unity可以为多个对象的同一组件同时编辑 public class LookAtPointEditor : Editor { SerializedProperty lookAtPoint;……

阅读全文

Unity中的Transform组件

Transform组件 在 Unity 场景中的游戏对象都有 Transform 组件,用于存储和操作对象的位置、旋转和缩放,同时 Transform 支持枚举。 重要的属性 属性 说明 childCount 该transform的直接孩子个数 forward 返回归一化向量,该向量在世界空间中为蓝色轴表示 right 红色轴 up 绿色轴 重要的方法 方法 说明 DetachChildren 将当前 Transform 下的孩子与其脱钩 Find 根据给定……

阅读全文

Unity的RuntimeInitializeOnLoadMethodAttribute特性

RuntimeInitializeOnLoadMethodAttribute 被标记为 RuntimeInitializeOnLoadMethodAttribute 的方法在游戏加载后就被调用,同时在Awake之后调用。 同时需要注意的是,所有被标记为 RuntimeInitializeOnLoadMethodAttribute 的方法,它们之间被调用的顺序是不一定的。 同时该特性还拥有可选参数 loadType,该参数决定了被标记的方法是在场景加载前还是加载后被调用。……

阅读全文

Unity中使用Null合并操作符和Null条件操作符时的注意事项

Unity中使用??和?.操作符时的注意事项 不要在继承自 UnityEngine.Object 的对象上使用 这是由于这些操作符并不使用由 UnityEngine.Object 重载的相等操作符,因此有可能导致意外通过 Unity 的生命周期检查。这种情况下最好使用显示Null判断或调用 System.Object.ReferenceEquals 函数。 具体可参考JetBrains提供的这篇文章 “Possible unintended bypass of lifetime check of underlying Unity engine object”……

阅读全文