unity editor

Unity编辑器的扩展:IMGUI

僤鯓⒐⒋嵵緔 提交于 2021-02-18 12:29:04
IMGUI 介绍 所有关于 Editor 的相关 UI,包括 Inspector、Hierarchy、Window、Game 视图上动态创建的那些半透明 UI、还有 Scene 视图上可添加的辅助显示 UI,叫做 IMGUI,全称 Immediate Mode GUI 。该名字来源于两类型的 UI 系统: immediate 和 retained 。 retained:当你设置好各种组件如 Text、Button 等的信息,或修改它们的相关属性后,这些组件的相关信息和改动就被保存(retained)下来了,系统会根据这些新的信息来绘制响应事件等,你可以随时去查询如 Text 文本内容或颜色等信息。UGUI 即是典型的 retained mode GUI。 immediate:跟上面的相反,系统不会自动保存 UI 控件上的各种信息,不会用上次的状态继续工作,而是反复的询问你这些控件应当是处于什么位置什么文本等状态信息。因此任何的用户交互结果是立即呈现返回给用户,而不是当用户需要的时候自行查询。如: 1 bool selected = false ; 2 void OnGUI() 3 { 4 selected = GUILayout.Toggle(selected, " A Toggle text " ); 5 if (selected) 6 { 7 DoSomething() 8 }

Unity AssetBundle 教程

自古美人都是妖i 提交于 2021-02-14 21:55:05
Unity AssetBundle 教程 AssetBundle是Unity用来处理资源热更新的,下面简单介绍AssetBundle的所有操作。本教程使用的Unity版本:Unity 2018.2.12f1 (64-bit) AssetBundle打包 设置AssetBundle名字 手动设置 打包之前按照上图所示的方法,设置一下AssetBundle的名字。 自动设置 将需要进行AssetBundle打包的图片按照“UI_”的前缀命名,然后根据图片的父目录来设置AssetBundle的名字。如下所示 然后新建一个ImageImporter.cs文件放入Editor目录下 using UnityEngine; using UnityEditor; /// <summary> /// 根据名字前缀自动化设置图片的格式以及TAG等设置 /// </summary> public class ImageImporter : AssetPostprocessor { /// <summary> /// 图片导入之前调用,可设置图片的格式、spritePackingTag、assetBundleName等信息 /// </summary> void OnPreprocessTexture() { TextureImporter importer = (TextureImporter

手把手教您快速运行Unity华为游戏(GameService)

与世无争的帅哥 提交于 2021-01-24 14:28:50
背景介绍 华为Game Service SDK提供了游戏应用自升级检测、获取玩家信息、游戏浮标、防沉迷、成就、排行榜等多个能力,Unity为了方便全球开发者快速集成该些能力并发布华为渠道,提供了HMS Core App Services SDK和demo。 本帖子先行试水,试试这个SDK的能力。 目标:将unity提供的游戏demo运行起来,能够调试通过基本的功能接口,如init,华为帐号登录。如果你还没安装Unity或者对Unity打包有疑问,请参考Unity Editor安装和Apk打包: https://developer.huawei.com/consumer/cn/forum/topic/0204405811539110247?fid=18 。 文档链接 https://docs.unity.cn/cn/Packages-cn/com.unity.hms@1.2/manual/appgalleryChinese.html demo下载路径 https://github.com/Unity-Technologies/HMSSDKSample 我们需要运行的demo是这个: 运行前的准备 步骤1:注册成为华为开发者并创建应用 这个步骤不做赘述,参考华为官方文档: https://developer.huawei.com/consumer/cn/doc/development

Siki_Unity_3-7_AssetBundle从入门到掌握

旧时模样 提交于 2021-01-24 05:49:32
Unity 3-7 AssetBundle从入门到掌握 任务1&2&3:课程介绍 AssetBundle -- 用于资源的更新 为了之后的xLua (Lua热更新的框架)打下基础 任务4&5:AssetBundle的定义和作用 AssetBundle的学习 -- 一手学习资源:UnityManual -> AssetBundles -> 教程式的文档 AssetBundle是一个压缩包(也可以认为是一个文件夹)   包含模型Model、贴图Texture、预制体Prefab、声音AudioClip、甚至整个场景   在游戏运行的时候可以被加载 这个压缩包被打包出来存在硬盘中,里面包含的文件可以分为两类:serialized file和resource files   serialized file:资源,如模型、预制体,被打碎放在一个对象中,最后统一被写进 一个单独的文件   resource file:某些二进制资源,如图片、声音,被单独保存,方便快速加载     -- 一个单独的图片或声音就会被打包成一个.resource文件 压缩包可以使用LZMA和LZ4压缩算法,便于更快的进行网络传输 -- 区别见任务13 为什么会用到网络传输呢?   1. 把一些可以下载的资源放在AssetBundle中,而不放在app中,而在需要的时候从网上直接加载资源     -- 减少安装包的大小

Unity

旧时模样 提交于 2020-12-16 11:24:52
前言 对于Unity编辑器的扩展方法众多,本文从最常用的一些方法入手,例如Inspector脚本栏的扩展、顶菜单栏的扩展等,图文并茂阐述其完整用法。 本文大部分内容整理自 独立游戏开发 - indienova 所著的 Unity使用技巧集合 ,但仅选取了最常用的一些方法,并在自身项目上加以实现。 项目地址: UnityEditor - SouthBegonia https: //github.com/SouthBegonia/UnityWorld/tree/master/UnityEditor 本文仅供学习交流,如有任何侵权行为立即删除。 脚本栏的扩展 该部分的扩展方法集中在Inspector中脚本面板,主要体现在代码实现脚本栏中可视变量的规范化、便捷化 [Header] 属性标题 为后续区域代码拟订一个标题,用于区分和概述该区域代码含义 [Header( "武器" )] public int weapon; public int ammunition; public int aurability; [Tooltip] 属性提示 实现在Inspector中,鼠标位于该变量名字上时,提示该变量的描述信息 [Tooltip( "玩家的名字,肯定不再是JOJO对吧" )] public string playerName; [Space] 空行属性

升级到Unity 5.4

徘徊边缘 提交于 2020-11-26 04:24:17
升级到Unity 5.4 当将项目从Unity 5.3升级到Unity 5.4时,有一些更改,您应该注意哪些可能会影响您现有的项目。 网络:多人服务API更改 许多更改联网API 。 网络:WebRequest不再实验 该WebRequest接口已经从推广UnityEngine.Experimental.Networking到UnityEngine.Networking。使用统一5.2和5.3的项目UnityWebRequest将必须被更新。 场景视图:音频映射不会自动应用 与图像效果ImageEffectTransformsToLDR属性将如果发现不再直接应用到场景图。一个新的属性存在应用效果的场景观点:ImageEffectAllowedInSceneView。5.4标准资产已升级,以反映这种变化。 着色器:重命名的变量 为了一致性,重命名了一些内置着色器变量: _Object2World 和 _World2Object 现在 unity_ObjectToWorld 和 unity_WorldToObject _World2Shadow 现在 unity_WorldToShadow [0] , _World2Shadow1 是 unity_WorldToShadow [1] 等。 _LightMatrix0 现在 unity_WorldToLight

Unity3D 入门:Unity Editor 编辑器常用快捷键

◇◆丶佛笑我妖孽 提交于 2020-11-16 04:38:13
本文为 Unity3D 入门小伙伴整理 Unity 编辑器中的常用快捷键。 调节工具 Unity 编辑器左上角的一组按钮,正好也对应着键盘左上角的字母: 图标 快捷键 Q W E R T Y 英文 Hand Tool Move Tool Rotate Tool Scale Tool Rect Tool Move, Rotate or Scale selected objects 中文 手形工具 移动工具 旋转工具 缩放工具 矩形工具 移动、旋转或缩放选定对象 功能 在整个场景中移动漫游 按坐标轴移动选定对象 按三个维度旋转对象 在三个维度上缩放对象 以矩形的方式调节对象的尺寸 综合前面所有对选定对象的调节工具 除了使用 Q 打开手形工具随后用鼠标左键漫游场景外,使用鼠标中键也可以在任意工具下漫游场景(按住鼠标中键然后移动鼠标)。 按住鼠标右键移动可以以当前镜头处为轴心旋转视角,按住鼠标右键的同时按下 W A S D Q E 也可以前后左右下上移动镜头。 按住 Alt 键的同时,也可以在任意工具下使用鼠标左键移动镜头,不过与前面不同的是,这是以目标物体为轴心来移动和旋转的。 按住 Alt 键的同时,按住鼠标右键上下左右移动也可以移远和移近物体。 按住 Ctrl 键的同时,使用以上所有工具移动、旋转或缩放对象的话,可以对齐网格。( Edit->Grid and Snap

Unity中基于前缀树的高性能红点系统实现

ⅰ亾dé卋堺 提交于 2020-10-04 04:29:49
文章主要介绍了红点系统的特点,如何基于前缀树这一数据结构实现红点系统,提出了相关实现中存在的两个性能问题,以及如何去解决这两个问题,并在最后基于UnityEditor的TreeView开发了树视图窗口,方便使用者在开发阶段的Debug需求。 红点系统是在大部分游戏中都能看到的常见需求。 其作用在于,在玩家达成某种条件时(如新获得某个装备、道具数量达到某个需求),在相关的UI上亮起红点来提示玩家进行相关操作。 红点系统的一个鲜明特征即是它的“层层套娃”性,子界面亮起红点时其父界面也需要同时被亮起红点,一直点亮到主界面为止。 以下图为例,当某个特定的主线章节亮起红点时, 其父界面的主线章节按钮和出击页签也需要被亮起红点。 最后主界面上的出击按钮也会亮起红点来最终达到提示玩家的目的。 如此层层嵌套下来,如果不对父子红点进行统一的触发管理,而是让负责各个模块的程序员各自管理,必将导致各个模块的红点触发逻辑难以维护且性能堪忧的结果。 而针对红点系统这种十分强调父子关系的业务需求,使用“前缀树”进行管理将是非常好的选择。 那么何为前缀树呢? 前缀树本质上是一种多叉树,树节点存储了字符,具有相同前缀的字符串将具有相同的父节点,在进行字符串保存和查找时具有较好的性能优势。 通过将红点抽象为路径,只需要稍加修改,让节点中存储对应的路径字符串和节点值,便可以方便地实现红点系统。 以之前的图为例

Unity采用Forge Networking Remastered数据的远程传输 Basic RPC Example

寵の児 提交于 2020-08-20 02:09:39
目录 Setting up the contract option 1 Extending Generated Classes Code if option 1 was selected Scene Setup Test 关键操作图示 In this example we are going to go over how to use the built in RPC methods inside of Forge Networking Remastered. In this example we are going to make a scene that already has a cube in it, then if anyone presses the up arrow key it will move the cube up, if anyone presses the down arrow key, it will move the cube down. Setting up the contract option 1 In this option, we will create 2 RPC methods with no arguments. One RPC is to move the cube up and the other is to move the

Unity采用Forge Networking Remastered数据的远程传输Basic Moving Cube Example

旧巷老猫 提交于 2020-08-19 17:09:36
目录 1. 关于Forge Networking Remastered的介绍 2 在unity asset store中找 Forge Networking 3, 下载导入,参数官方文档操作即可 Basic Moving Cube Example Network Contract Wizard Extending Generated Classes 下面这个脚本要自己重新写 Scene Setup Test 操作关键图示 1. 关于Forge Networking Remastered的介绍 https://github.com/BeardedManStudios/ForgeNetworkingRemastered/wiki 2 在unity asset store中找 Forge Networking 3, 下载导入,参数官方文档操作即可 Basic Moving Cube Example https://github.com/BeardedManStudios/ForgeNetworkingRemastered/wiki/Basic-Moving-Cube-Example In this example, we are going to make a simple game where we have a cube in the scene that is owned by