版本 |
作者 |
参与者 |
完成日期 |
备注 |
UnityAPI_Graphics_V01_1.0 |
严立钻 |
|
2020.07.22 |
|
|
|
|
|
|
立钻哥哥:Unity是一个入门快、提高难的游戏引擎,想要提升能力,至少需要越过3道坎:API+Shader+综合能力;++1、API的积累:对API的合理利用不仅可以减轻自己的编码负担,而且往往可以提高程序的运行效率;这也是钻哥开始“Unity API”独立打造分类的初衷; ++2、Shader编程:想要做出一款精品游戏往往需要有高效的Shader的支持;Unity提供了一套改良的“Shader Lab”系统,优化了繁杂的“Open GL”编程; ++3、综合能力(技术+业务+管理):一款产品的制作除了功能编程外,往往会涉及很多其他领域,例如产品架构、UI交互设计、模型制作等,作为主要的编程人员,对其他相关领域的了解程序往往会影响到产品制作直至最后的产品体验; ++++立钻哥哥一直在推动【VR云游戏=Unity+SteamVR+云技术+5G+AI】,这个只是一个引子,抛砖引玉让大家对整个知识体系有一个明确的落地方向,宝宝们可以根据自己的兴趣方向进行拓展:比如Unity这里是指一种“3D游戏引擎”,也可拓展至“UE4、Cocos2dx”等游戏引擎;SteamVR是一种跨硬件解决方案,也可拓展至“VRTK”等第三方插件;“云技术+5G”是一种跨平台解决方案的核心技术,同样可拓展至其他平台解决方案;AI也是一种先进技术的举例,也可以拓展至任何一种前沿技术; |
++++【Unity API】分类:https://blog.csdn.net/vrunsoftyanlz/category_7637520.html
++++【Unity开发基础】分类:https://blog.csdn.net/vrunsoftyanlz/category_7309057.html
++++【Linux系统编程】分类:https://blog.csdn.net/vrunsoftyanlz/category_9694767.html
++++【C++C铸就生存利器】分类:https://blog.csdn.net/vrunsoftyanlz/category_9325802.html
++++【人工智能AI2026】分类:https://blog.csdn.net/vrunsoftyanlz/category_9212024.html
++++【立钻哥哥CSDN空间】:https://blog.csdn.net/VRunSoftYanlz/
#Graphics图形 |
#Graphics图形++A1、Description描述++B2、Variables变量++C3、Public Function共有函数++D4、Message消息 |
#A1、Description描述 |
++++Graphics函数是进入Unity最佳网格绘画功能的高级捷径;
This is the high-level shortcut into the optimized mesh drawing functionality of Unity. |
#B2、Static Variables静态变量 |
++B2、Static Variables静态变量++++B2.1、activeColorBuffer++++B2.2、activeDepthBuffer++++B2.3、YanlzXREngine.Graphics.StaticVariables |
++B2.1、activeColorBuffer |
public static RenderBuffer activeColorBuffer; |
++++当前有效的颜色缓冲区(只读);
++++B2.2、activeDepthBuffer |
public static RenderBuffer activeDepthBuffer; |
++++当前有效的深度/模板缓存区(只读);
#C3、Static Functions静态函数 |
++C3、Static Functions静态函数++++C3.1、Blit++++C3.2、BlitMultiTap++++C3.3、ClearRandomWriteTargets++++C3.4、DrawMesh++++C3.5、DrawMeshNow++++C3.6、DrawProcedural++++C3.7、DrawProceduralIndirect++++C3.8、DrawTexture++++C3.9、ExecuteCommandBuffer++++C3.10、SetRandomWriteTarget++++C3.11、SetRenderTarget++++C3.12、YanlzXREngine.Graphics.StaticFunctions |
++C3.1、Blit |
public static void Blit(Texture source, RenderTexture dest);public static void Blit(Texture source, RenderTexture dest, Material mat, int pass=-1);public static void Blit(Texture source, Material mat, int pass=-1); |
++++[source]:Source texture;
++++[dest]:Destination RenderTexture, or null to blit directly to screen;
++++[mat]:Material to use. Material’s shader could do some post-processing effect, for example;
++++[pass]:If -1(default), draws all pssses in the material. Otherwise, draws given pass only;
++++拷贝资源纹理到目的渲染纹理的主色器中;
++++这主要是用于实现图像效果;
++++Blit设置dest到渲染目标,在材质上设置source作为_MainTex属性,并且绘制一个全屏方块;
++++注意:如果想使用资源(渲染)纹理部分的深度或模板缓存区,必须手动做相当于位块传输功能:即,与目的颜色缓存区和资源颜色缓存区一起的Graphics.SetRenderTarget,设置正射投影(GL.LoadOrtho),安装材料(Material.SetPass)和画一个方块(GL.Begin);
++++注意:在线性颜色空间中,要有正确的sRGB<->线性颜色转换状态设置是很重要;当前状态可能不是期望的那种,而是取决于预先渲染什么;在做位块传送或者其他手动渲染之前应该考虑设置GL.sRGBWrite作为需要的;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzGraphics : MonoBehaviour{ public Texture aTexture; public RenderTexture rTex;
void Start(){ if(!aTexture || !rTex){ Debug.LogError(“立钻哥哥:A texture or a render texture are missing, assign them.”); } //立钻哥哥:if(){} } //立钻哥哥:void Start(){}
void Update(){ Graphics.Blit(aTexture, rTex); } //立钻哥哥:void Update(){}
} //立钻哥哥:public class YanlzGraphics{} |
++C3.2、BlitMultiTap |
public static void BlitMultiTap(Texture source, RenderTexture dest, Material mat, params Vector2[] offsets); |
++++[source]:Source texture;
++++[dest]:Destination RenderTexture, or null to blit directly to screen;
++++[mat]:Material to use for copying. Material’s shader should do some post-processing effect;
++++[offsets]:Variable number of filtering offsets. Offsets are given in pixels;
++++拷贝源纹理到目的渲染纹理,用于multi-tap着色器;
++++这主要是用于实现图像效果;例如,高斯或迭代锥形模糊取样源纹理在多个不同的位置;
++++BlitMultiTap设置dest到激活的渲染纹理,在材质上设置source作为_MainTex属性,并且绘制一个全屏方块,方块的每个点有多个纹理坐标,通过offsets像素偏移;
++C3.3、ClearRandomWriteTargets |
public static void ClearRandomWriteTargets(); |
++++清除着色器模式5.0级别像素着色器的随机写入目标;
++++该功能清除任何“随机写入”目标,该目标可以通过SetRandomWriteTarget预先设置;
++C3.4、DrawMesh |
public static void DrawMesh(Mesh mesh, Vector3 position, Quaternion rotation);public static void DrawMesh(Mesh mesh, Vector3 position, Quaternion rotation, int materialIndex);public static void DrawMesh(Mesh mesh, Vector3 position, Quaternion rotation, Material material, int layer, Camera camera=null, int submeshIndex=0, MaterialPropertyBlock properties=null, bool castShadows=true, bool receiveShadows=true);public static void DrawMesh(Mesh mesh, Vector3 position, Quaternion rotation, Material material, int layer, Camera camera, int submeshIndex, MaterialPropertyBlock properties, Rendering.ShadowCastingMode castShadows, bool receiveShadows=true, Transform probeAnchor=null);public static void DrawMesh(Mesh mesh, Matrix4x4 matrix);public static void DrawMesh(Mesh mesh, Matrix4x4 matrix, int materialIndex);public static void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material properties=null, int layer, Camera camera=null, int submeshIndex=0, MaterialPropertyBlock properties=null, bool castShadows=true, bool receiveShadows=true);public static void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, int layer, Camera camera, int submeshIndex, MaterialPropertyBlock properties, Rendering.ShadowCastingMode castShadows, bool receiveShadows=true, Transform probeAnchor=null); |
++++[mesh]:The Mesh to draw;
++++[position]:Position of the mesh;
++++[rotation]:Rotation of the mesh;
++++[matrix]:Transformation matrix of the mesh(combines position, rotation and other transformations);
++++[material]:Material to use;
++++[layer]:Layer to use;
++++[camera]:If null (default), the mesh will be drawn in all cameras. Otherwise it will be rendered in the given camera only;
++++[submeshIndex]:Whicn subset of the mesh to draw. This applies only to meshes that are composed of several materials;
++++[properties]:Additional material properties to apply onto material just before this mesh will be drawn. See MaterialPropertyBlock;
++++[castShadows]:Should the mesh cast shadows?
++++[receiveShadows]:Should the mesh receive shadows?
++++绘制一个网格;
++++DrawMesh在一帧中绘制网格;该网格将会被灯光影响,可以投射和接受阴影并且可以被放映机影响:就像是某些游戏对象的一部分;可以被所有的摄像机或者仅对于一些指定摄像机;
++++在想绘画大量的网格情况下,但不希望创建和管理游戏对象的开销,使用DrawMesh;注意:DrawMesh不是立即绘画网格;仅仅将它“提交”给渲染;该网格将会被作为正常渲染进程的一部分;如果想要立即绘制网格,使用Graphics.DrawMeshNow;
++++因为DrawMesh不会立即绘制网格,修改材质属性之间调用该函数不会使该网格获取它们;如果想要绘制相同材质系列网格,但是些许不同的属性(举例说明改变每个网格的颜色),使用MaterialPropertyBlock参数;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzGraphics : MonoBehaviour{ public Mesh mesh; public Material material;
public void Update(){ //will make the mesh appear in the scene at origin position Graphics.DrawMesh(mesh, Vector3.zero, Quaternion.identity, material, 0); } //立钻哥哥:public void Update(){}
} //立钻哥哥:public class YanlzGraphics{} |
++C3.5、DrawMeshNow |
public static void DrawMeshNow(Mesh mesh, Vector3 position, Quaternion rotation);public static void DrawMeshNow(Mesh mesh, Vector3 position, Quaternion rotation, int materialIndex);public static void DrawMeshNow(Mesh mesh, Matrix4x4 matrix);public static void DrawMeshNow(Mesh mesh, Matrix4x4 matrix, int materialIndex); |
++++[mesh]:The Mesh to draw;
++++[position]:Position of the mesh;
++++[rotation]:Rotation of the mesh;
++++[matrix]:Transformation matrix of the mesh(combines position, rotation and other transformations). Note that the mesh will not be displayed correctly if matrix has negative scale;
++++[materialIndex]:Subset of the mesh to draw;
++++立刻绘制网格;
++++该函数立即绘制一个指定网格;当前设置着色器和材质将会被使用(Material.SetPass);
++++该网格仅会被绘制一次,它将不会被逐像素点亮并且不会投射和接受实时阴影;如果想集成全部灯光和阴影,使用Graphics.DrawMesh替代它;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzGraphics : MonoBehaviour{ public Mesh mesh; public Material mat;
public void OnPostRender(){ //set first shader pass of the material mat.SetPass(0);
//draw mesh at the origin Graphics.DrawMeshNow(mesh, Vector3.zero, Quaternion.identity); } //立钻哥哥:public void OnPostRender(){}
} //立钻哥哥:public class YanlzGraphics{} |
++C3.6、DrawProcedural |
public static void DrawProcedural(MeshTopology topology, int vertexCount, int instanceCount=1); |
++++在GPU中绘制程序上的几何结构;
++++DrawProcedural在GPU中进行绘制调用,没有任何顶点和索引缓存区;这仅用于DirectX 11或者OpenGL核心级硬件着色器可以从ComputeBuffer缓存区读取任何数据;
++++注意:该调用立即执行,近似于Graphics.DrawMeshNow;它使用当前设置渲染目标,转换矩阵和当前设置着色器路径;
++++还有一个在CommandBuffers中类似的功能;
++C3.7、DrawProceduralIndirect |
public static void DrawProceduralIndirect(MeshTopology topology, ComputeBuffer bufferWithArgs, int argsOffset=0); |
++++[topology]:Topology of the procedural geometry;
++++[bufferWithArgs]:Buffer with draw arguments;
++++[argsOffset]:Offset where in the buffer the draw arguments are;
++++在GPU中绘制程序上的几何结构;
++++DrawProceduralIndirect是GPU中的绘制回调,没有任何顶点或者索引缓存区;从计算机缓存区读取大量几何体去绘制;典型使用案例是从计算机着色器生成任意数量的数据并渲染它们,不需要回读到CPU中;
++++该功能仅用于DirectX 11或者OpenGL核心级别硬件,着色器可以从计算机缓存区读取任意缓存数据;
++++缓存区的参数bufferWithArgs,在给定偏移量argsOffset中有四个整数数字:每个实例的顶点数量,实例数量,开始顶点位置,开始实例位置;这很大程序将映射到Direct3D11 DrawInstancedIndirect/OpenGL ES 3.1 glDrawArraysIndirect功能(在OpenGL ES 3.1的最后一个参数是保留,因此不使用);
++++注意:该调用立即执行,近似于Graphics.DrawMeshNow;它使用当前设置渲染目标,转换矩阵和当前设置着色器路径;
++++还有一个在CommandBuffers中类似的功能:CommandBuffer.DrawProcedural;
++C3.8、DrawTexture |
public static void DrawTexture(Rect screenRect, Texture texture, Material mat=null);public static void DrawTexture(Rect screenRect, Texture texture, int leftBorder, int rightBorder, int topBorder, int bottomBorder, Material mat=null);public static void DrawTexture(Rect screenRect, Texture texture, Rect sourceRect, int leftBorder, int rightBorder, int topBorder, int bottomBorder, Material mat=null);public static void DrawTexture(Rect screenRect, Texture texture, Rect sourceRect, int leftBorder, int rightBorder, int topBorder, int bottomBorder, Color color, Material mat=null); |
++++[screenRect]:Rectangle on the screen to use for the texture. In pixel coordinates with (0,0) in the upper-left corner;
++++[texture]:Texture to draw;
++++[sourceRect]:Region of the texture to use. In normalized coordinates with (0,0) in the bottom-left corner;
++++[leftBorder]:Number of pixels from the left that are not affected by scale;
++++[rightBorder]:Number of pixels from the right that are not affected by scale;
++++[topBorder]:Number of pixels from the top that are not affected by scale;
++++[bottomBorder]:Number of pixels from the bottom that are not affected by scale;
++++[color]:Color that modulates the output. The neutral value is (0.5, 0.5, 0.5, 0.5). Set as vertex color for the shader;
++++[mat]:Custom Material that can be used to draw the texture. If null is passed, a default material with the Internal-GUITexture.shader is used;
++++在屏幕坐标上绘制一个纹理;
++++如果想从OnGUI代码里面绘制纹理,仅需要从EventType.Repaint事件绘制;可能从使用GUI.DrawTexture更好;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzGraphics : MonoBehaviour{ public Texture aTexture;
void OnGUI(){ if(Event.current.type.Equals(EventType.Repaint)){ Graphics.DrawTexture(new Rect(10, 10, 100, 100), aTexture); } //立钻哥哥:if(){} } //立钻哥哥:void OnGUI(){}
} //立钻哥哥:public class YanlzGraphics{} |
++C3.9、ExecuteCommandBuffer |
pubilc static void ExecuteCommandBuffer(Rendering.CommandBuffer buffer); |
++++[buffer]:The buffer to execute;
++++执行缓存区命令;
++++所有缓存区的命令将会被立即执行;
++C3.10、SetRandomWriteTarget |
public static void SetRandomWriteTarget(int index, RenderTexture uav); |
++++[index]:Index of the random write target in the shader;
++++[uav]:Render Texture/ComputeBuffer to set as write target;
++++为着色模型5.0水平像素着色器设置随机写入目标;
++++着色模型5.0水平像素着色器可以写入一些纹理和缓存区的任意位置,在UsingDX11GL3Features中调用“无序存取视图”(UAV);“随机写入”目标设置类似于多重渲染目标的设置;可以使用渲染纹理enableRandomWrite标记设置,或者计算机缓存作为目标;
++++UAV索引不同的平台之间有点变化;在DX11上首个有效的UAV索引是激活渲染目标的数量;因此在普通情况下单个渲染目标的UAV索引将从1开始;当使用转化HLSL着色器时OpenGL ES 3.1匹配该行为;与手写GLSL着色器的索引将会匹配绑定;在PS4上的索引开始总是从1去匹配大多数普通情况;
++++该目标设置暂留直到使用ClearRandomWriteTargets清除它们;
++C3.11、SetRenderTarget |
public static void SetRenderTarget(RenderTexture rt);public static void SetRenderTarget(RenderTexture rt, int mipLevel);public static void SetRenderTarget(RenderTexture rt, int mipLevel, CubemapFace face);public static void SetRenderTarget(RenderBuffer colorBuffer, RenderBuffer depthBuffer);public static void SetRenderTarget(RenderBuffer[] colorBuffers, RenderBuffer depthBuffer);public static void SetRenderTarget(RenderBuffer colorBuffer, RenderBuffer depthBuffer, int mipLevel);pubilc static void SetRenderTarget(RenderBuffer colorBuffer, RenderBuffer depthBuffer, int mipLevel, CubemapFace face); |
++++设置当前渲染目标;
++++该函数设置的RenderTexture或RenderBuffer组合将被渲染到下一步;当执行自定义渲染算法使用它,需要手动渲染某些渲染纹理时采用自定义;
++++启用mipLevel和face变形的参数渲染到指定RenderTexture的mipmap级别,或者立方体贴图渲染纹理的指定的立方体贴图面;
++++colorBuffers数组函数调用实现技术使用多重渲染目标(MRT),在片段渲染器可以输出多个最终的颜色;
++++调用SetRenderTarget仅与RenderTexture参数是设置相同RenderTexture.active属性;
++++注意:在线性颜色空间,拥有当前sRGB->线性颜色转换声明设置是重要的;当前状态可能不是所期望的那种,取决于预先渲染什么;在做设置渲染目标或者其他手工渲染之前,应该考虑设置GL.sRGBWrite作为需要的那种;
#D4、立钻哥哥对Graphics类的拓展 |
++++【Unity API】分类:https://blog.csdn.net/vrunsoftyanlz/category_7637520.html
++++【Unity开发基础】分类:https://blog.csdn.net/vrunsoftyanlz/category_7309057.html
++++【Linux系统编程】分类:https://blog.csdn.net/vrunsoftyanlz/category_9694767.html
++++【C++C铸就生存利器】分类:https://blog.csdn.net/vrunsoftyanlz/category_9325802.html
++++【人工智能AI2026】分类:https://blog.csdn.net/vrunsoftyanlz/category_9212024.html
++++【立钻哥哥CSDN空间】:https://blog.csdn.net/VRunSoftYanlz/
立钻哥哥推荐的拓展学习链接(Link_Url) |
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++++虚拟现实VR资讯: https://blog.csdn.net/VRunSoftYanlz/article/details/89165846
++++HTC_VIVE开发基础:https://blog.csdn.net/VRunSoftYanlz/article/details/81989970
++++Oculus杂谈:https://blog.csdn.net/VRunSoftYanlz/article/details/82469850
++++Oculus安装使用:https://blog.csdn.net/VRunSoftYanlz/article/details/82718982
++++Unity+SteamVR=>VR:https://blog.csdn.net/VRunSoftYanlz/article/details/88809370
++++Unity减少VR晕眩症:https://blog.csdn.net/VRunSoftYanlz/article/details/89115518
++++SteamVR简介:https://blog.csdn.net/VRunSoftYanlz/article/details/86484254
++++SteamVR脚本功能分析:https://blog.csdn.net/VRunSoftYanlz/article/details/86531480
++++SteamVR2.0开发指南:https://blog.csdn.net/VRunSoftYanlz/article/details/86618187
++++SteamVR2.2.0开发指南:https://blog.csdn.net/VRunSoftYanlz/article/details/88784527
++++SteamVR2.2.0快速入门:https://blog.csdn.net/VRunSoftYanlz/article/details/88833579
++++SteamVR2.2.0交互系统:https://blog.csdn.net/VRunSoftYanlz/article/details/89199778
++++SteamVR2.2.0传送机制:https://blog.csdn.net/VRunSoftYanlz/article/details/89390866
++++SteamVR2.2.0教程(一):https://blog.csdn.net/VRunSoftYanlz/article/details/89324067
++++SteamVR2.2.0教程(二):https://blog.csdn.net/VRunSoftYanlz/article/details/89894097
++++SteamVR_Skeleton_Poser:https://blog.csdn.net/VRunSoftYanlz/article/details/89931725
++++SteamVR实战之PMCore:https://blog.csdn.net/VRunSoftYanlz/article/details/89463658
++++SteamVR/Extras:https://blog.csdn.net/VRunSoftYanlz/article/details/86584108
++++SteamVR/Input:https://blog.csdn.net/VRunSoftYanlz/article/details/86601950
++++OpenXR简介:https://blog.csdn.net/VRunSoftYanlz/article/details/85726365
++++VRTK杂谈:https://blog.csdn.net/VRunSoftYanlz/article/details/82562993
++++VRTK快速入门(杂谈):https://blog.csdn.net/VRunSoftYanlz/article/details/82955267
++++VRTK官方示例(目录):https://blog.csdn.net/VRunSoftYanlz/article/details/82955410
++++VRTK代码结构(目录):https://blog.csdn.net/VRunSoftYanlz/article/details/82780085
++++VRTK(SceneResources):https://blog.csdn.net/VRunSoftYanlz/article/details/82795400
++++VRTK_ControllerEvents:https://blog.csdn.net/VRunSoftYanlz/article/details/83099512
++++VRTK_InteractTouch:https://blog.csdn.net/VRunSoftYanlz/article/details/83120220
++++虚拟现实行业应用:https://blog.csdn.net/VRunSoftYanlz/article/details/88360157
++++Steam平台上的VR:https://blog.csdn.net/VRunSoftYanlz/article/details/88960085
++++Steam平台热销VR:https://blog.csdn.net/VRunSoftYanlz/article/details/89007741
++++VR实验:以太网帧的构成:https://blog.csdn.net/VRunSoftYanlz/article/details/82598140
++++实验四:存储器扩展实验:https://blog.csdn.net/VRunSoftYanlz/article/details/87834434
++++FrameVR示例V0913:https://blog.csdn.net/VRunSoftYanlz/article/details/82808498
++++FrameVR示例V1003:https://blog.csdn.net/VRunSoftYanlz/article/details/83066516
++++SwitchMachineV1022:https://blog.csdn.net/VRunSoftYanlz/article/details/83280886
++++PlaySceneManagerV1022:https://blog.csdn.net/VRunSoftYanlz/article/details/83280886
++++Unity5.x用户手册:https://blog.csdn.net/VRunSoftYanlz/article/details/81712741
++++Unity面试题ABC:https://blog.csdn.net/vrunsoftyanlz/article/details/78630687
++++Unity面试题D:https://blog.csdn.net/VRunSoftYanlz/article/details/78630838
++++Unity面试题E:https://blog.csdn.net/vrunsoftyanlz/article/details/78630913
++++Unity面试题F:https://blog.csdn.net/VRunSoftYanlz/article/details/78630945
++++Cocos2dx面试题:https://blog.csdn.net/VRunSoftYanlz/article/details/78630967
++++禅道[zentao]:https://blog.csdn.net/VRunSoftYanlz/article/details/83964057
++++Lua快速入门篇(Xlua拓展):https://blog.csdn.net/VRunSoftYanlz/article/details/81173818
++++Lua快速入门篇(XLua教程):https://blog.csdn.net/VRunSoftYanlz/article/details/81141502
++++Lua快速入门篇(基础概述):https://blog.csdn.net/VRunSoftYanlz/article/details/81041359
++++框架知识点:https://blog.csdn.net/VRunSoftYanlz/article/details/80862879
++++游戏框架(UI框架夯实篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80781140
++++游戏框架(初探篇):https://blog.csdn.net/VRunSoftYanlz/article/details/80630325
++++.Net框架设计:https://blog.csdn.net/VRunSoftYanlz/article/details/87401225
++++从零开始学架构:https://blog.csdn.net/VRunSoftYanlz/article/details/88095895
++++设计模式简单整理:https://blog.csdn.net/vrunsoftyanlz/article/details/79839641
++++专题:设计模式(精华篇):https://blog.csdn.net/VRunSoftYanlz/article/details/81322678
++++U3D小项目参考:https://blog.csdn.net/vrunsoftyanlz/article/details/80141811
++++Unity小游戏算法分析:https://blog.csdn.net/VRunSoftYanlz/article/details/87908365
++++Unity案例(Vehicle):https://blog.csdn.net/VRunSoftYanlz/article/details/82355876
++++UML类图:https://blog.csdn.net/vrunsoftyanlz/article/details/80289461
++++PowerDesigner简介:https://blog.csdn.net/VRunSoftYanlz/article/details/86500084
++++Unity知识点0001:https://blog.csdn.net/vrunsoftyanlz/article/details/80302012
++++Unity知识点0008:https://blog.csdn.net/VRunSoftYanlz/article/details/81153606
++++U3D_Shader编程(第一篇:快速入门篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372071
++++U3D_Shader编程(第二篇:基础夯实篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372628
++++Unity引擎基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78881685
++++Unity面向组件开发:https://blog.csdn.net/vrunsoftyanlz/article/details/78881752
++++Unity物理系统:https://blog.csdn.net/vrunsoftyanlz/article/details/78881879
++++Unity2D平台开发:https://blog.csdn.net/vrunsoftyanlz/article/details/78882034
++++UGUI基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78884693
++++UGUI进阶:https://blog.csdn.net/vrunsoftyanlz/article/details/78884882
++++UGUI综合:https://blog.csdn.net/vrunsoftyanlz/article/details/78885013
++++Unity动画系统基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78886068
++++Unity动画系统进阶:https://blog.csdn.net/vrunsoftyanlz/article/details/78886198
++++Navigation导航系统:https://blog.csdn.net/vrunsoftyanlz/article/details/78886281
++++Unity特效渲染:https://blog.csdn.net/vrunsoftyanlz/article/details/78886403
++++Unity数据存储:https://blog.csdn.net/vrunsoftyanlz/article/details/79251273
++++Unity中Sqlite数据库:https://blog.csdn.net/vrunsoftyanlz/article/details/79254162
++++WWW类和协程:https://blog.csdn.net/vrunsoftyanlz/article/details/79254559
++++Unity网络:https://blog.csdn.net/vrunsoftyanlz/article/details/79254902
++++Unity资源加密:https://blog.csdn.net/VRunSoftYanlz/article/details/87644514
++++PhotonServer简介:https://blog.csdn.net/VRunSoftYanlz/article/details/86652770
++++编写Photon游戏服务器:https://blog.csdn.net/VRunSoftYanlz/article/details/86682935
++++C#事件:https://blog.csdn.net/vrunsoftyanlz/article/details/78631267
++++C#委托:https://blog.csdn.net/vrunsoftyanlz/article/details/78631183
++++C#集合:https://blog.csdn.net/vrunsoftyanlz/article/details/78631175
++++C#泛型:https://blog.csdn.net/vrunsoftyanlz/article/details/78631141
++++C#接口:https://blog.csdn.net/vrunsoftyanlz/article/details/78631122
++++C#静态类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630979
++++C#中System.String类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630945
++++C#数据类型:https://blog.csdn.net/vrunsoftyanlz/article/details/78630913
++++Unity3D默认的快捷键:https://blog.csdn.net/vrunsoftyanlz/article/details/78630838
++++游戏相关缩写:https://blog.csdn.net/vrunsoftyanlz/article/details/78630687
++++UnityAPI.Rigidbody刚体:https://blog.csdn.net/VRunSoftYanlz/article/details/81784053
++++UnityAPI.Material材质:https://blog.csdn.net/VRunSoftYanlz/article/details/81814303
++++UnityAPI.Android安卓:https://blog.csdn.net/VRunSoftYanlz/article/details/81843193
++++UnityAPI.AndroidJNI安卓JNI:https://blog.csdn.net/VRunSoftYanlz/article/details/81879345
++++UnityAPI.Transform变换:https://blog.csdn.net/VRunSoftYanlz/article/details/81916293
++++UnityAPI.WheelCollider轮碰撞器:https://blog.csdn.net/VRunSoftYanlz/article/details/82356217
++++UnityAPI.Resources资源:https://blog.csdn.net/VRunSoftYanlz/article/details/83155518
++++JSON数据结构:https://blog.csdn.net/VRunSoftYanlz/article/details/82026644
++++CocosStudio快速入门:https://blog.csdn.net/VRunSoftYanlz/article/details/82356839
++++Unity企业内训(目录):https://blog.csdn.net/VRunSoftYanlz/article/details/82634668
++++Unity企业内训(第1讲):https://blog.csdn.net/VRunSoftYanlz/article/details/82634733
++++Unity企业内训(第2讲):https://blog.csdn.net/VRunSoftYanlz/article/details/82861180
++++Unity企业内训(第3讲):https://blog.csdn.net/VRunSoftYanlz/article/details/82927699
++++Unity企业内训(第4讲):https://blog.csdn.net/VRunSoftYanlz/article/details/83479776
++++Unity企业内训(第5讲):https://blog.csdn.net/VRunSoftYanlz/article/details/83963811
++++Unity企业内训(第6讲):https://blog.csdn.net/VRunSoftYanlz/article/details/84207696
++++钻哥带您了解产品原型:https://blog.csdn.net/VRunSoftYanlz/article/details/87303828
++++插件
++++计算机组成原理(教材篇):https://blog.csdn.net/VRunSoftYanlz/article/details/82719129
++++5G接入:云计算和雾计算:https://blog.csdn.net/VRunSoftYanlz/article/details/88372718
++++云计算通俗讲义:https://blog.csdn.net/VRunSoftYanlz/article/details/88652803
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz
--_--VRunSoft:lovezuanzuan--_--
--_--VRunSoft:lovezuanzuan--_--