自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (1)
  • 收藏
  • 关注

原创 ILRuntime 热更新

ILRuntime是什么经验汇总主工程的代码,如果只是在ILRuntime热更工程中使用的话,在IL2CPP时,会被优化掉(认为没有被调用过),可以在相关代码上加上[Preverse]修饰来解决打正式包时,在工程的宏定义里加入ILRUNTIME_DEBUG_DISABLE,禁止ILRuntime收集调试信息,会提升运行效率调试时,提示“Cannot connect to ILRuntim...

2019-12-14 15:38:03 599

原创 Unity Entity Component System 翻译文档目录

Core ECS 核心概念Entities 实体Components 组件System 系统Accessing entity dataUsing IJobForEachUsing IJobChunkUsing Component​System and For​EachManual iterationEntiy QueryComponent WriteGroupsVersi...

2019-12-14 10:57:47 448

原创 Unity 图形 - 摄像机

文章目录1. Camera1.1 透视和正交1.2 视口区域形状1.3 背景2. 使用多个摄像机2.1 多个摄像机切换2.2 全屏渲染+部分屏幕区域渲染3. 使用物理摄像机 Using Physical cameraLens ShiftsGate FitGate Fit ModesVerticalHorizontalNoneFill and Overscan4. 使用技巧 Camera Trick...

2020-02-12 22:10:00 2021 1

原创 Unity 可编程渲染管线

文章目录可编程渲染管线 Scriptable Render Pipeline什么是可编程渲染管线SRP什么是SRP CoreSRP入门 Getting Started概述SRP AssetSRP InstanceSRP要解决的问题问题解决方案SRP AssetSRP Asset 例子SRP Instance基础管线 A basic pipelineSRP Context用SRP渲染 Renderi...

2020-02-12 10:18:51 616

原创 Unity 渲染管线

文章目录1. 渲染管线1.1 选择一种渲染管线2. 默认管线 Built-in Render Pipeline2.1 渲染通路 Rendering paths2.1.0.1 前向渲染 Forward Rendering2.1.0.2 延迟着色 Deferred Shading2.1.0.3 老版本的延迟着色 Legacy Deferred2.1.0.4 老版本的顶点着色 Legacy Vertex...

2020-02-12 10:17:43 4531

原创 Unity中的物理系统

文章目录1.概述 Rigidbody 和 Collider1.1刚体 Rigidbody1.2碰撞体 Colliders1.2.1Collider1.2.2碰撞体分类1.2.3碰撞体与触发器1.3关节 Joints1.4 角色控制器 CharacterController2. 刚体2.1 组件属性2.2 父子关系2.3 脚本2.4 动画2.5 刚体和碰撞体2.6 连续碰撞见2.7 比例和单位2.8...

2020-02-04 22:35:54 7776 5

原创 Unity 中操作数据文件

文章目录路径路径定义ResourceApplication.dataPathApplication.streamingAssetPathApplication.persistentDataPath(推荐使用)Application.temporaryCatchPath/sdcard/../storage/emulated/0/..路径访问路径目录Android平台IOS平台实践应用Streamin...

2020-01-27 20:02:06 1119 1

转载 Markdown数学公式语法

行内与独行行内公式:将公式插入到本行内,符号:$公式内容$,如:$xyz$ 独行公式:将公式插入到新的一行内,并且居中,符号:$$公式内容$$,如:$$xyz$$上标、下标与组合上标符号,符号:^,如:$x^4$ 下标符号,符号:_,如:$x_1$ 组合符号,符号:{},如:${16}_{8}O{2+}_{2}$汉字、字体与格式汉字形式,符号:\mbox{},如:$V_{\m...

2020-01-26 22:20:21 151

原创 Unity 中的旋转和朝向

文章目录Rotation and Orientation in Unity欧拉角和四元数欧拉角四元数编程中直接创建和操作四元数创建操作欧拉角使用注意动画中Unity 的 Animation Window导入的动画数据Rotation and Orientation in Unity官方文档地址:Rotation and Orientation in UnityUnity中的旋转,通常用四元数...

2020-01-26 22:15:56 3094

原创 Unity Math Quaternion

文章目录简介Quaternion类属性静态属性属性构造函数方法静态方法运算符欧拉角简介Quaternion又称四元数,由x,y,z和w这四个分量组成,是由爱尔兰数学家威廉·卢云·哈密顿在1843年发现的数学概念。四元数的乘法不符合交换律。从明确地角度而言,四元数是复数的不可交换延伸。如把四元数的集合考虑成多维实数空间的话,四元数就代表着一个四维空间,相对于复数为二维空间。四元数不存在欧拉角的...

2020-01-26 18:50:41 491

原创 Unity Math Matrix

文章目录简介静态属性属性方法静态方法简介Matrix4x4是标准变换矩阵,可以执行线性变换,平移,旋转,缩放,切边等,以及使用齐次坐标进行透视变换。U3D编程中,一般很少直接使用矩阵,因为多数变换都被封装到了Vector3和Quaternion中了。静态属性identity 标准矩阵00,11,22,33的值为1,其它为0zero 0矩阵,所有元素都是0属性FrustumPl...

2020-01-26 18:50:20 594

原创 Unity Math Vector3

表示3D向量和点,3个分量分别为 x,y,z定义了常用的向量:静态常量值back0,0,-1forward0,0,1left-1,0,0right1,0,0up0,1,0down0,-1,0one1,1,1zero0,0,0negativeInfinityfloat.NegativeInfinity,floa...

2020-01-24 17:11:01 355

原创 Unity 视频播放 VideoPlayer Component

文章目录文档经验:在视频上显示UI控制视频进度文档使用 video player component 可以播放视频文件。比如过场动画,或者在3D对象上播放视频,比如场景中的电视机模型上。支持的格式:MP4,mov,webm,wmv例如下面的截图,在一个球形3D对象的材质贴图上播放视频的效果:Material Property的值自动设置成了GameObject的Renderer的材质的...

2020-01-22 18:19:45 1031

原创 Unity LOD Group

文章目录概述LOD Group 选择条预览 LOD 切换Renderers for LOD MeshesLOD切换Fade Transition WidthWorking with Speed Tree modeAPI概述当绘制对象时,单位像素绘制的三角形数量越多,效率就越低。因此我们希望在保证精度的前提下渲染尽量少的三角形数量,LOD可以解决这个问题。LOD(Level of Detail...

2020-01-22 18:18:23 4868

原创 Culling 渲染剔除

文章目录剔除视锥体frustum裁剪遮挡剔除摄像机距离剔除遮挡剔除 Occlusion Culling建立遮挡剔除遮挡剔除窗口遮挡剔除烘焙 - bakeOcclusion Area 裁剪区域测试效果剔除提升代码效率的最佳办法,就是不执行它。提升渲染效率最佳的办法,就是不渲染它。所以Unity提供了多种将对象从渲染列表中剔除的方法。视锥体frustum裁剪利用场景管理算法(2D用4叉树,3...

2020-01-22 18:17:39 807

原创 Unity Transform

文章目录Transform属性接口TranslateInverseTransformDirection / [TransformDirection](https://docs.unity3d.com/ScriptReference/Transform.TransformDirection.html)InverseTransformPoint / [TransformPoint](https://d...

2020-01-22 18:15:25 460

原创 动画状态机 Blend Trees

文章目录Blend Tree1D BlendingParameter RangeThreshold 阈值Automate Thresholds 自动分配阈值Compute Thresholds 计算阈值(根据Root Motion数据)2D Blending2D 混合图PositionsDirect BendingBlend Tree游戏中,可能需要混合多个动画来实现一些效果。比如,通过角色的...

2020-01-19 20:57:10 924

原创 动画状态机AnimatorController

文章目录Animator Controller状态系统状态状态切换程序参数切换属性[Transition Interruption](https://blog.csdn.net/lrh3025/article/details/104012508)Interruption Source 属性Ordered Interruption 属性Transition graphAnimator Contro...

2020-01-16 23:43:31 2523

翻译 Animator 状态机切换打断机制

State Machine Transition interruptions查看原文状态机切换打断机制在默认的动画系统中,切换不能被打断:一旦开始从一个状态切换到另一个状态,就不能中途退出。就像飞越大西洋的航班,一旦开始,只能到目的地,中途不能改变。大多数情况下,动画状态机的这个机制能工作的很好。但是如果想要更进一步地控制切换,Mecanim 可以通过多种配置方式来达到需求。这可以更加灵活...

2020-01-16 23:20:55 3721

原创 UGUI Canvas

文章目录Canvas参数3种绘制方式Canvas Scalar 屏幕自适应UI Scale ModeConstant Pixel SizeScale With Screen Size优化CanvasCanvas 是 UGUI 的画布,UI元素都要放在它下面参数Render Mode: 渲染模式,有三种:Screen Space - Overlay,Screen Space - Camer...

2020-01-12 20:53:20 170

原创 脚本 4 脚本编译及日志

文章目录脚本编译编辑器编译死锁自定义程序集日志脚本编译脚本修改完后,Unity会自动进行编译,生成DLL,并存储在 Library/ScriptAssemblies/ 目录下,最终会生成4个DLL:Assembly-CSharp-firstpass.dll Assets/Plugins/ 目录下的非 Editor 子目录的代码,将编译在该 DLL 中Assembly-CSharp-Edit...

2020-01-05 11:32:31 301

原创 脚本 3 序列化

今天我们聊聊序列化。文章目录可序列化对象MonoBehaviourScriptableObject文件存储方式序列化属性定义SerializedObject 以及 SerializedProperty监听数据更新监听序列化事件编辑属性序列化声明,及Inspector自定义例子序列化事件监听例子ScriptableObject 例子可序列化对象序列化对象包括2种:MonoBehaviour...

2020-01-04 20:07:25 426

原创 脚本 2 协程

文章目录目的协程的启动与停止启动接口 [StartCoroutine](目的MonoBehaviour 不支持多线程,即,所有 Unity 提供给 MonoBehvaiour 调用地接口,只能在主线程调用,当然,其它原生 C# ,以及我们写地代码,只要不调用 Unity,都是可以进行多线程调用的。协程的启动与停止启动接口 StartCoroutinepublic Coroutine Sta...

2020-01-01 17:48:59 205 1

原创 脚本 1 生命周期及执行顺序

生命周期作为一个 Unity 开发者,脚本是贯穿我们的开发过程,所以脚本生命周期,一定要理解,记牢,如下图:执行顺序游戏项目需要用到很多脚本,有时我们希望挂在 GameObject 上的脚本,按照我们希望的顺序初始化和执行,这是可以的:在 ProjectSettings/Script Execution Order 菜单栏中,可以配置执行顺序。脚本优化上面的脚本生命周期中的每个事件,...

2019-12-31 23:13:26 391

原创 拓展编辑器 11 - 自定义脚本模板

项目中,我们可能定义了代码框架,很多代码文件使用的是同样的模板,每次创建代码,把相同的代码敲一遍,或者从其它文件赋值,都是件麻烦的事。解决这个问题,我们可以自定义模板文件,并添加创建菜单,这样可以像 MonoBehaviour 一样方便地创建我们自己的模板格式的代码文件。基本思想:创建模板文件,放在 Assets/Editor/ScriptTemplates/ 目录下,并对模板文本定义替换...

2019-12-31 22:42:22 128

原创 拓展编辑器 10 - 自定义资源导入

unity为我们提供了自定义资源导入的流程,通过该流程,我们可以对导入的资源进行检查,及预处理,比如检查贴图是否是2的n次幂,设置贴图参数,创建预制等对unity无法识别的资源,加入导入流程方法:派生 ScriptedImporter,并实现 OnImportAsset() 方法。例子using UnityEngine;using UnityEditor;using UnityE...

2019-12-28 19:28:56 255

原创 拓展编辑器 9 - 查找静态引用的资源(预制)

游戏运行过程中,由于逻辑过于复杂,可能会有资源被静态变量引用,无法释放,我们需要找到静态引用资源的变量,来定位问题。基本原理时,获取我们的脚本的 dll (Assembly-CSharp) 的所有类型,找到所有的静态变量成员,如果成员是UnityEngine.Object 类型,收集依赖数据,最后将该静态变量以用的资源打印出来静态引用脚本代码,将该脚本添加到GameObject ,可以测试检查...

2019-12-28 19:21:51 107

原创 拓展编辑器 8 - PreviewView

Inspector 窗口下方的 preview 窗口也可以扩展,绘制自己的 GUI。方法:继承 ObjectPreview,并声明 [CustomPreview(typeof(GameObject))]。using UnityEngine;using UnityEditor;/// <summary>/// 扩展选中对象后的预览窗口/// </summary&gt...

2019-12-28 19:07:40 256 1

原创 拓展编辑器 7 - 自定义窗口 EditorWindow

开发者可以通过派生 EditorWindows 绘制完全自定义的窗口。使用 EditorWindow.GetWindow()来打开窗口,在OnGUI中进行绘制。通过实现 IHasCustomMenu 来添加菜单例子:using UnityEngine;using UnityEditor;/// <summary>/// 自定义窗口/// </summary&gt...

2019-12-28 18:57:07 388

原创 拓展编辑器 6 - GameView

Game 视图也可以扩展,主要是可以指定 [ExeuteInEditMode] 来指定在非运行时调用这个比较简单,直接贴个代码吧using UnityEngine;[ExecuteInEditMode] // 之时编辑模式下也执行public class GameViewExtend : MonoBehaviour{#if UNITY_EDITOR private void...

2019-12-28 18:19:27 201

原创 拓展编辑器 5 - SceneView

关键概念void MonoBehaviour.OnDrawGizmosSelected() : 为选中的,当前类型的 MonoBehaviour 绘制辅助元素。void MonoBehaviour.OnDrawGizmos() : 为所有的当前类型的 MonoBehaviour 绘制辅助元素。Gizmos : 绘制接口Gizmos.color : 指定绘制颜色Gizmos.DrawC...

2019-12-28 18:13:23 628

原创 拓展编辑器 4 - InspectorWindow

关键概念[CustomEditor typeof(ComponentType)]: 修饰,指定派生自Editor 的类为 ComponentType 类型的编辑器控制类。Editor : 派生改类,为 object 实现自定义的 Inspector 或 editor 界面。Editor.OnInspectorGUI : 覆写 Inspector 绘制GUILayout.Button : ...

2019-12-28 17:17:42 225

原创 拓展编辑器 3 - HierarchyWindow

关键概念[MenuItem(“GameObject/XXX”)] : 创建左上角的 Create 菜单项。如果跟已有的路径相同,将覆盖已有功能。EditorApplication.hierarchyWindowItemOnGUI : 委托,处理 hierarchy 窗口对象的绘制。签名:void OnGUI(int instanceID, Rect selectionRect)。int ...

2019-12-28 16:48:15 169

原创 拓展编辑器 2 - ProjectWindow

扩展鼠标选中的资源项关键概念:[InitializeOnLoadMethod] : 该修饰告诉 Unity ,被修饰的方法在脚本编译完后首先调用。必须时静态方法。MenuItem(“Asset/XXX”) : 右键菜单。[MenuItem(“Asset/Create/XXX”)] : 右键菜单,以及在窗口左上角的 Create菜单显示。EditorApplication....

2019-12-28 16:18:27 421

原创 拓展编辑器 1 - 菜单 MenuItem

菜单 MenuItem官方文档连接MenuItem修饰可以让我们对菜单进行扩展,同时,该修饰只能用在静态方法上。格式:public MenuItem(string itemName, bool isValidateFunction, int priority)参数含义:itemName:菜单路径,以 “/” 分隔。如"Window/MyFunc",表示将菜单添加到 Window 下...

2019-12-28 11:20:16 208

翻译 Unity Entity Component System --- TransformSystem

Section 1: Non-hierarchical Transforms(Basic)LocalToWorld(float4X4)表示从本地到世界空间的变换。这是一种经典的表示方式,也是系统中唯一用来访问本地空间的组件。一些DOTS特性,只有存在LocalToWorld时才能执行。例如,RenderMesh组件依赖LocalToWorld来渲染实例。如果只有一个LocalToWorl...

2019-12-21 17:28:22 867

翻译 Unity Entity Component System --- Creating Gameplay

Creating Gameplay该部分讨论用Unity编辑器创作基于DOTS的游戏和其它应用,以及如何利用ECS提供的system和components来实现你游戏。Systems包括:Unity.Transforms — 提供定义世界空间方位的组件,3D对象层次,以及管理它们的系统。Unity.Hybrid.Renderer — 提供在运行时渲染ECS 实体的系统和组件。Auth...

2019-12-21 17:26:33 363

原创 uGUI备忘

ContentSizeFitter:该组件可以帮我们在空间内容发生变化导致空间尺寸改变时,重新计算RectTransform。但在复杂的UI应用中,可能我们给文本赋值后,没有正确地计算RectTransform,那么我们需要手动触发计算:ContentSizeFitter csf;csf.enable = false;csf.enable = true;如果这时空间本身地active...

2019-12-21 17:24:24 313

原创 Unity Audio 系统

游戏加入声音后,会大大的增强沉浸感,提高游戏体验,unity提供了强大的声音组件来帮助播放音效,即AudioSystem使用Audio的最简单的例子将音效文件导入unity工程在场景中创建一个GameObject在Project中找到导入的音效文件,直接拖动到上面创建的GameObject上再创建一个Game Object,添加AudioListener组件来“听”场景中的声音运行例...

2019-12-14 18:07:53 3127 1

原创 UGUI Grid VerticalLayout HorizentalLayout经验

列表元素创建出来,但是无法滚动:Grid未加ContentSizeFitter组件,该组件用于动态计算Grid的Rect尺寸列表元素尺寸可变时,比如VerticalLayout元素,有的高,有的矮,会有尺寸计算错误的情况在创建完成后,取出ContentSizeFitter组件,设置enable=false,再enable=true,触发重新计算Rect元素上有多个子控件,且可见性不确定,...

2019-12-14 16:03:51 131

GPU gems.1.chm

nvidia 图形编程书籍,技巧,方法,原理

2011-02-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除