《UnityAPI.NavMesh导航网格》
版本 | 作者 | 参与者 | 完成日期 | 备注 |
UnityAPI_NavMesh_V01_1.0 | 严立钻 |
| 2020.08.27 |
|
|
|
|
|
|
#《UnityAPI.NavMesh导航网格》发布说明:
++++“UnityAPI.NavMesh导航网格”是对UnityAPI中NavMesh导航网格类的剖析和拓展;
立钻哥哥: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也是一种先进技术的举例,也可以拓展至任何一种前沿技术; |
@@提示:有些博客可能只是开了头,如果感兴趣的同学,可以“点赞”或“评论区留言”,只要关注的同学多了,那就会继续完善哟!(“++==”,表示没有写完的,如果关注度不高就不完善了;“++ok++”,表示此篇博客已经完成,是阶段性完整的!)
$$$$博客溯源:
++++VR云游戏=Unity+SteamVR+云技术+5G+AI;(说明:AI人工智能不是我们的主要研究技术,只是了解一下,领略一下有风的感觉!但是,VR是我们的研究重点)
++++【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/
#NavMesh导航网格
#NavMesh导航网格 |
#NavMesh导航网格++A1、Description描述++B2、Variables变量++C3、Public Function共有函数++D4、Message消息 |
#A1、Description描述
#A1、Description描述 |
++A1、Description描述
++++立钻哥哥:NavMesh(导航网格)是一个用来访问烘焙过的NavMesh的类;
++++[namespace]:;
++++[Inherits from]:;
++++NavMesh是一个能够用在空间查询方面的类;例如:寻路和可通过检测中,为特定的区域设置寻路的代价,和对寻路和躲避进行全局的调整;
++++为了使用空间查询,需要为场景先烘焙NavMesh;
++++[Mesh网格]:https://blog.csdn.net/VRunSoftYanlz/article/details/107419330
++++[Navigation导航系统]:https://blog.csdn.net/VRunSoftYanlz/article/details/78886281
#B2、Static Variables静态变量
#B2、Static Variables静态变量 |
++B2、Static Variables静态变量++++B2.1、AllAreas++++B2.2、avoidancePredictionTime++++B2.3、pathfindingIterationsPerFrame++++B2.4、YanlzXREngine.NavMesh.StaticVariables |
++B2.1、AllAreas
++B2.1、AllAreas |
++B2.1、AllAreas
++++立钻哥哥:所有区域;
public static int AllAreas; |
++++区域遮挡包含所有的导航网格区域;
++++该遮挡可以被用于在查询功能中,例如NavMesh.Raycast,表明所有导航网格区域类型是可以接受的;
using UnityEngine; using System.Collections; using YanlzXREngine;
//立钻哥哥:TargetReachable.cs; public class YanlzNavMesh : MonoBehaviour{ public Transform target; private NavMeshHit hit; private bool blocked = false;
void Update(){ //Allow pass through all area types when testing if the target position is reachable from the transform location. blocked = NavMesh.Raycast(transform.position, target.position, out hit, NavMesh.AllAreas); Debug.DrawLine(transform.position, target.position, blocked ? Color.red : Color.green); if(blocked){ Debug.DrawRay(hit.position, Vector3.up, Color.red); } //立钻哥哥:if(){} } //立钻哥哥:void Update(){}
} //立钻哥哥:public class YanlzNavMesh{} |
++B2.2、avoidancePredictionTime
++B2.2、avoidancePredictionTime |
++B2.2、avoidancePredictionTime
++++立钻哥哥:避免预测时间;
public static float avoidancePredicationTime; |
++++描述为了避免碰撞,多远代理开始预测碰撞;
++++更大的值,代理更容易去开始避免彼此之间引起碰撞;该值被测算单位秒;默认值是2.0,良好的范围在0.5到5.0之间;
++B2.3、pathfindingIterationsPerFrame
++B2.3、pathfindingIterationsPerFrame |
++B2.3、pathfindingIterationsPerFrame
++++立钻哥哥:每帧迭代寻路;
public static int pathfindingIterationsPerFrame; |
++++在异步寻路过程中每帧处理的节点的最大数量;
++++当进行路径寻找时,每帧仅扩展一定数量的节点(导航网格多边形);当长路径或者大数量的要求被处理时,与此同时要求游戏平滑运行且没有不确定原因非再现问题,另一方面可以获取路径要求完成的帧数的数量;
++++迭代数量仅影响异步寻路,设置导航网格代理方向使用;
++++增加该值将会导致路径被处理过快,但是在帧率中可能引起一些不知名问题;默认是100,最佳范围在50到500之间;
#C3、Static Functions静态函数
#C3、Static Functions静态函数 |
++C3、Static Functions静态函数++++C3.1、CalculatePath++++C3.2、CalculateTriangulation++++C3.3、FindClosestEdge++++C3.4、GetAreaCost++++C3.5、GetAreaFromName++++C3.6、Raycast++++C3.7、SamplePosition++++C3.8、SetAreaCost++++C3.9、YanlzXREngine.NavMesh.StaticFunctions |
++C3.1、CalculatePath
++C3.1、CalculatePath |
++C3.1、CalculatePath
++++立钻哥哥:计算路径;
public static bool CalculatePath(Vector3 sourcePosition, Vector3 targetPosition, int areaMask, NavMeshPath path); |
++++[sourcePosition]:路径要求的初始位置;
++++[targetPosition]:路径要求的最终位置;
++++[areaMask]:当计算路径,位阀遮罩指定哪一个导航网格区域可以被通过;
++++[path]:最终路径;
++++[返回值]:当发现全部或者局部路径时为true,其他则为false;
++++计算两点之间的路径并存储结果路径;
++++该函数可以被用于游戏中提前设计路径避免延迟;另一个用法是在移动代理之前检查目标位置是否可到达;
++++与NavMeshAgent.SetDestination相比,这是异步调用,该函数立即计算路径;这可以用于长路径并可能在帧率上引起不知名错误;推荐仅用于每帧寻找小路径,例如当评估到替代点的距离;
++++返回路径可以用于设置代理的路径,使用NavMeshAgent.SetPath;代理需要关闭工作设定的路径的起始点;
using UnityEngine; using System.Collections; using YanlzXREngine;
//立钻哥哥:ShowGoldenPath.cs; public class YanlzNavMesh : MonoBehaviour{ public Transform target; private NavMeshPath path; private float elapsed = 0.0f;
void Start(){ path = new NavMeshPath(); elapsed = 0.0f; } //立钻哥哥:void Start(){}
void Update(){ //Update the way to the goal every second; elapsed += Time.deltaTime; if(elapsed > 1.0f){ elapsed -= 1.0f; NavMesh.CalculatePath(transform.position, target.position, NavMesh.AllAreas, path); } //立钻哥哥:if(){}
for(int i = 0; i < path.corners.Length - 1; i++){ Debug.DrawLine(path.corners[i], paht.corners[i + 1], Color.red); } //立钻哥哥:for(){}
} //立钻哥哥:void Update(){}
} //立钻哥哥:public class YanlzNavMesh{} |
++C3.2、CalculateTriangulation
++C3.2、CalculateTriangulation |
++C3.2、CalculateTriangulation
++++立钻哥哥:计算三角形;
public static NavMeshTriangulation CalculateTriangulation(); |
++++计算当前导航网格的三角形;
++++计算和返回当前导航网格的简单三角形:包括定点,三角目录和导航网格层;
++++返回网格包含仅用于寻路的三角形;它不包含用于在可行走表面放置代理的细节;这在自身弯曲表面可以是明显的;
++C3.3、FindClosestEdge
++C3.3、FindClosestEdge |
++C3.3、FindClosestEdge
++++立钻哥哥:寻找最近边缘;
public static bool FindClosestEdge(Vector3 sourcePosition, out NavMeshHit hit, int areaMask); |
++++[sourcePosition]:查询起始距离;
++++[hit]:拥有属性的产生位置;
++++[areaMask]:当寻找最近边缘时遮挡指定哪个导航网格区域可以通过;
++++[返回值]:发现最近边缘为true;
++++查找从导航网格上的点到最近的导航网格边缘;
++++返回的NavMeshHit对象包含导航网格最近的边缘上的位置和最近的点的细节;这可以用于查询围绕代理有多少额外空间;
using UnityEngine; using System.Collections; using YanlzXREngine;
//立钻哥哥:MeasureSpaceAround.cs; public class YanlzNavMesh : MonoBehaviour{
void DrawMyCircle(Vector3 center, float radius, Color color){ Vector3 prevPos = center + new Vector3(radius, 0, 0); for(int i = 0; i < 30; i++){ float angle = (float)(i+1)/30.0f * Mathf.PI * 2.0f; Vector3 newPos = center + new Vector3(Mathf.Cos(angle)*radius, 0, Mathf.Sin(angle)*radius); Debug.DrawLine(prevPos, newPos, color);
prevPos = newPos; } //立钻哥哥:for(){} } //立钻哥哥:void DrawMyCircle(){}
void Update(){ NavMeshhit hit;
if(NavMesh.FindClosestEdge(transform.position, out hit, NavMesh.AllAreas)){ DrawMyCircle(transform.position, hit.distance, Color.red); Debug.DrawRay(hit.position, Vector3.up, Color.red); } //立钻哥哥:if(){}
} //立钻哥哥:void Update(){}
} //立钻哥哥:public class YanlzNavMesh{} |
++C3.4、GetAreaCost
++C3.4、GetAreaCost |
++C3.4、GetAreaCost
++++立钻哥哥:获取区域成本;
public static float GetAreaCost(int areaIndex); |
++++[areaIndex]:获取的区域的索引;
++++获取区域类型的几何图形之上的寻路成本;
++++该值应用于所有代理除非NavMeshAgent.SetAreaCost通过自定义每个代理;
++C3.5、GetAreaFromName
++C3.5、GetAreaFromName |
++C3.5、GetAreaFromName
++++立钻哥哥:从名称获取区域;
public static int GetAreaFromName(string areaName); |
++++[areaName]:查找的区域名称;
++++[返回值]:指定区域的索引,如果没有发现区域值为-1;
++++根据命名的导航网格区域类型返回区域索引;
using UnityEngine; using System.Collections; using YanlzXREngine;
//立钻哥哥:MeasureSpaceAround.cs; public class YanlzNavMesh : MonoBehaviour{
void Update(){ //Find nearest point on water. int waterMask = 1 << NavMesh.GetAreaFromName(“water”); NavMeshHit hit;
if(NavMesh.SamplePosition(transform.position, out hit, 2.0f, waterMask)){ Debug.DrawRay(hit.position, Vector3.up, Color.blue); } //立钻哥哥:if(){}
} //立钻哥哥:void Update(){}
} //立钻哥哥:public class YanlzNavMesh{} |
++C3.6、Raycast
++C3.6、Raycast |
++C3.6、Raycast
++++立钻哥哥:射线投射;
public static bool Raycast(Vector3 sourcePosition, Vector3 targetPosition, out NavMeshHit hit, int areaMask); |
++++[sourcePosition]:射线的起点;
++++[targetPosition]:射线的终点;
++++[hit]:保存射线投射位置的属性;
++++[areaMask]:当绘制路径时,位掩码指定NavMesh区域中可以被通过的地方;
++++[返回值]:布尔类型,如果光线在到达目标位置之前终止返回true;否则返回false;
++++在NavMesh上,两点之间的一个路径;
++++起始点和目标点首先被映射在导航网格中,然后一条射线从起始点到目标点之间跟踪;如果射线击中一个导航网格边界,该函数返回true,hit数据被填满;如果从目标源的路径是通畅的,函数返回false;
++++这个函数可以用来检测在NavMesh上一个agent是否可以在两点间通畅行走;
using UnityEngine; using System.Collections; using YanlzXREngine;
//立钻哥哥:TargetReachable.cs; public class YanlzNavMesh : MonoBehaviour{ public Transform target; private NavMeshHit hit; private bool blocked = false;
void Update(){ blocked = NavMesh.Raycast(transform.position, target.position, out hit, NavMesh.AllAreas); Debug.DrawLine(transform.position, target.position, blocked ? Color.red : Color.green);
if(blocked){ Debug.DrawRay(hit.position, Vector3.up, Color.red); } //立钻哥哥:if(){}
} //立钻哥哥:void Update(){}
} //立钻哥哥:public class YanlzNavMesh{} |
++C3.7、SamplePosition
++C3.7、SamplePosition |
++C3.7、SamplePosition
++++立钻哥哥:采样位置;
public static bool SamplePosition(Vector3 sourcePosition, out NavMeshHit hit, float maxDistance, int areaMask); |
++++[sourcePosition]:查询采样的起点;
++++[hit]:产生位置的拥有属性;
++++[maxDistance]:从sourcePosition开始在该距离内采样;
++++[areaMask]:遮罩指定哪个导航网格区域允许寻找最近的点;
++++[返回值]:发现最近的点为true;
++++在导航网格上的指定范围内寻找最近的点;
++++该函数采样导航网格并在导航网格上去寻找最近的点;
++++最近的点被返回基于查询的点的距离;在世界空间中该函数不检查障碍;例如:sourcePosition是在天花板上,一个点在第二层将会被返回(如果这是导航网格),而不是在一楼的位置;
++++如果查找半径是太大,该函数获取是相当昂贵;一个好的开始点对于最大距离来说是代理的2倍高;
++++如果在导航网格上尝试寻找一个随机点,最好使用推荐半径并且尝试多次而不是使用一个更大的半径;
using UnityEngine; using System.Collections; using YanlzXREngine;
//立钻哥哥:RandomPointOnNavMesh.cs; public class YanlzNavMesh : MonoBehaviour{ public float range = 10.0f;
bool RandomMyPoint(Vector3 center, float range, out Vector3 result){ for(int i = 0; i < 30; i++){ Vector3 randomPoint = center + Random.insideUnitSphere * range; NavMeshHit hit;
if(NavMesh.SamplePosition(randomPoint, out hit, 1.0f, NavMesh.AllAreas)){ result = hit.position; return true; } //立钻哥哥:if(){} } //立钻哥哥:for(){}
result = Vector3.zero; return false; } //立钻哥哥:bool RandomMyPoint(){}
void Update(){ Vector3 point;
if(RandomMyPoint(transform.position, range, out point)){ Debug.DrawRay(point, Vector3.up, Color.blue, 1.0f); } //立钻哥哥:if(){}
} //立钻哥哥:void Update(){}
} //立钻哥哥:public class YanlzNavMesh{} |
++C3.8、SetAreaCost
++C3.8、SetAreaCost |
++C3.8、SetAreaCost
++++立钻哥哥:设置面积代价;
public static void SetAreaCost(int areaIndex, float cost); |
++++[areaIndex]:Index of the area to set;
++++[cost]:New cost;
++++Sets the cost for finding path over geometry of the area type on all agents;
++++This will replace any custom area costs on all agents, and set the default cost for new agents that are created after calling the function. The cost must be larger than 1.0;
++++You can use NavMesh.GetAreaFromName to find the area index based on the name of the NavMesh area type;
using UnityEngine; using System.Collections; using YanlzXREngine;
//立钻哥哥:RandomPointOnNavMesh.cs; public class YanlzNavMesh : MonoBehaviour{
void Update(){ if(Input.anyKeyDown){ //Make water area 10x more costly to traverse. NavMesh.SetAreaCost(NavMesh.GetAreaFromName(“water”)); } //立钻哥哥:if(){}
} //立钻哥哥:void Update(){}
} //立钻哥哥:public class YanlzNavMesh{} |
#D4、立钻哥哥对NavMesh类的拓展
#D4、立钻哥哥对NavMesh类的拓展 |
++++【Unity API】分类:https://blog.csdn.net/vrunsoftyanlz/category_7637520.html
++++[Unity快速入门]:https://blog.csdn.net/VRunSoftYanlz/article/details/105776475
++++[UnityAPI目录]:https://blog.csdn.net/VRunSoftYanlz/article/details/106533906
++++[Application应用]:https://blog.csdn.net/VRunSoftYanlz/article/details/106086327
++++[Object对象]:https://blog.csdn.net/VRunSoftYanlz/article/details/106202194
++++[GameObject]:https://blog.csdn.net/VRunSoftYanlz/article/details/106223815
++++[MonoBehaviour]:https://blog.csdn.net/VRunSoftYanlz/article/details/106533256
++++[Component组件]:https://blog.csdn.net/VRunSoftYanlz/article/details/106367004
++++[Transform变换]:https://blog.csdn.net/VRunSoftYanlz/article/details/106607761
++++[Camera摄像机]:https://blog.csdn.net/VRunSoftYanlz/article/details/106148837
++++[Shader着色器]:https://blog.csdn.net/VRunSoftYanlz/article/details/106321040
++++[Material材质]:https://blog.csdn.net/VRunSoftYanlz/article/details/81814303
++++[Physics物理]:https://blog.csdn.net/VRunSoftYanlz/article/details/106268062
++++[Collider碰撞器]:https://blog.csdn.net/VRunSoftYanlz/article/details/106696886
++++[Rigidbody刚体]:https://blog.csdn.net/VRunSoftYanlz/article/details/106698042
++++[Animator动画]:https://blog.csdn.net/VRunSoftYanlz/article/details/106863517
++++[Animation]:https://blog.csdn.net/VRunSoftYanlz/article/details/106931626
++++[AnimationCurve]:https://blog.csdn.net/VRunSoftYanlz/article/details/106952329
++++[AnimationEvent]:https://blog.csdn.net/VRunSoftYanlz/article/details/107008468
++++[Joint关节]:https://blog.csdn.net/VRunSoftYanlz/article/details/106771226
++++[RaycastHit]:https://blog.csdn.net/VRunSoftYanlz/article/details/106292370
++++[ParticleSystem]:https://blog.csdn.net/VRunSoftYanlz/article/details/106341995
++++[WWW万维网]:https://blog.csdn.net/VRunSoftYanlz/article/details/106412890
++++[LineRenerer]:https://blog.csdn.net/VRunSoftYanlz/article/details/106306388
++++[WheelCollider]:https://blog.csdn.net/VRunSoftYanlz/article/details/82356217
++++[MovieTexture]:https://blog.csdn.net/VRunSoftYanlz/article/details/106434063
++++[Keyframe关键帧]:https://blog.csdn.net/VRunSoftYanlz/article/details/107008908
++++[Debug调试]:https://blog.csdn.net/VRunSoftYanlz/article/details/107029574
++++[Quaternion]:https://blog.csdn.net/VRunSoftYanlz/article/details/107271863
++++[RectTransform]:https://blog.csdn.net/VRunSoftYanlz/article/details/107092732
++++[Gizmos可视化]:https://blog.csdn.net/VRunSoftYanlz/article/details/107049986
++++[LightProbes探测]:https://blog.csdn.net/VRunSoftYanlz/article/details/107372601
++++[Ray射线]:https://blog.csdn.net/VRunSoftYanlz/article/details/107348830
++++[Time时间]:https://blog.csdn.net/VRunSoftYanlz/article/details/107325540
++++[Event事件]:https://blog.csdn.net/vrunsoftyanlz/article/details/108246710
++++[GUI界面]:https://blog.csdn.net/VRunSoftYanlz/article/details/107549711
++++[Graphics图形]:https://blog.csdn.net/VRunSoftYanlz/article/details/107523428
++++[RenderTexture]:https://blog.csdn.net/VRunSoftYanlz/article/details/107501834
++++[SMRenderer]:https://blog.csdn.net/VRunSoftYanlz/article/details/107501557
++++[Mesh网格]:https://blog.csdn.net/VRunSoftYanlz/article/details/107419330
++++[PSRenderer]:https://blog.csdn.net/VRunSoftYanlz/article/details/107395415
++++[Particle粒子]:https://blog.csdn.net/VRunSoftYanlz/article/details/107394743
++++[Light灯光]:https://blog.csdn.net/VRunSoftYanlz/article/details/107372030
++++[Mathf数学函数]:https://blog.csdn.net/VRunSoftYanlz/article/details/107307385
++++[Vector2二维]:https://blog.csdn.net/VRunSoftYanlz/article/details/107239428
++++[Vector3三维]:https://blog.csdn.net/VRunSoftYanlz/article/details/107170428
++++[Vector4四维]:https://blog.csdn.net/VRunSoftYanlz/article/details/107147669
++++[Color颜色]:https://blog.csdn.net/VRunSoftYanlz/article/details/107147170
++++[Cloth布料]:https://blog.csdn.net/VRunSoftYanlz/article/details/107131605
++++[Canvas画布]:https://blog.csdn.net/VRunSoftYanlz/article/details/107117293
++++[TransitionInfo]:https://blog.csdn.net/VRunSoftYanlz/article/details/107116998
++++[AniStateInfo]:https://blog.csdn.net/VRunSoftYanlz/article/details/107116694
++++[AnimationState]:https://blog.csdn.net/VRunSoftYanlz/article/details/107093213
++++[Rect矩阵]:https://blog.csdn.net/VRunSoftYanlz/article/details/107073059
++++[Random随机数]:https://blog.csdn.net/VRunSoftYanlz/article/details/107072515
++++[PlayerPrefs存档]:https://blog.csdn.net/VRunSoftYanlz/article/details/107029106
++++[StateMachine]:https://blog.csdn.net/VRunSoftYanlz/article/details/107028714
++++[AnimationClip]:https://blog.csdn.net/VRunSoftYanlz/article/details/106951675
++++[Input输入]:https://blog.csdn.net/VRunSoftYanlz/article/details/106843487
++++[Resources资源]:https://blog.csdn.net/VRunSoftYanlz/article/details/106818524
++++[Network网络]:https://blog.csdn.net/VRunSoftYanlz/article/details/106795026
++++[Collision碰撞]:https://blog.csdn.net/VRunSoftYanlz/article/details/106697669
++++[Matrix4x4矩阵]:https://blog.csdn.net/VRunSoftYanlz/article/details/106504027
++++[Renerer渲染器]:https://blog.csdn.net/VRunSoftYanlz/article/details/106481994
++++[AudioSource]:https://blog.csdn.net/VRunSoftYanlz/article/details/106462679
++++[AudioClip]:https://blog.csdn.net/VRunSoftYanlz/article/details/106448955
++++[Texture纹理]:https://blog.csdn.net/VRunSoftYanlz/article/details/106448589
++++[AssetBundle]:https://blog.csdn.net/VRunSoftYanlz/article/details/106412190
++++[ScriptableObject]:https://blog.csdn.net/VRunSoftYanlz/article/details/106392769
@@提示:有些博客可能只是开了头,如果感兴趣的同学,可以“点赞”或“评论区留言”,只要关注的同学多了,那就会继续完善哟!(“++==”,表示没有写完的,如果关注度不高就不完善了;“++ok++”,表示此篇博客已经完成,是阶段性完整的!)
++++VR云游戏=Unity+SteamVR+云技术+5G+AI;(说明:AI人工智能不是我们的主要研究技术,只是了解一下,领略一下有风的感觉!但是,VR是我们的研究重点)
++++【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/
【XR游戏开发QQ群:784477094】
++立钻哥哥推荐的拓展学习链接(Link_Url):
立钻哥哥推荐的拓展学习链接(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
++++插件<Obi Rope>:https://blog.csdn.net/VRunSoftYanlz/article/details/83963905
++++计算机组成原理(教材篇):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--_--