《FrameVR示例_V1003》 |
版本 | 作者 | 参与者 | 完成日期 | 备注 |
VRTest_FrameV1003_V01_1.0 | 严立钻 |
| 2018.10.10 |
|
|
|
|
|
|
##《FrameVR示例_V1003》目录:
#A、ApaqiInput/
#B、FanSceneThree/0/
#C、FanStartScene/Script/
#D、Scripts/
#A、ApaqiInput/
#A、ApaqiInput/ |
#A、ApaqiInput/
++++A.1、PingInput.cs
##A.1、PingInput.cs
##A.1、PingInput.cs |
++A.1、PingInput.cs
++++立钻哥哥:FrameVR_V1003-OUC\Assets\ApaqiInput\PingInput.cs
publicclassPingInput:MonoBehaviour{ privatestatic PingInputmsInstance; publicTextmsShowCountents; publicstringmsInputContent; publicstringmsOrigionalContent;
publicvoidMsUpdateData(stringnewData){} publicvoidMsUpdateData(){} publicvoidMsUpdateData(boolerror,stringstr){}
IEnumeratorYieldShowDataError(stringstr){} IEnumeratorYieldShowDataQure(stringstr){}
} //立钻哥哥:public class PingInput:MonoBehaviour{} |
#B、FanSceneThree/0/
#B、FanSceneThree/0/ |
#B、FanSceneThree/0/
++++B.1、_Apaqi/Script/
++++B.2、CableComponent/Scripts/
++++B.4、Service/
##B.1、_Apaqi/Script/
##B.1、_Apaqi/Script/ |
++++B.1、_Apaqi/Script/
++++B.1.1、Animator/
++++B.1.2、AssessmentTime/
++++B.1.3、Base/
++++B.1.4、Drag/
++++B.1.5、Effect/
++++B.1.6、Five/
++++B.1.7、Http/
++++B.1.8、TCP/
++++B.1.9、Three/
++++B.1.10、UI/
++++B.1.11、VR/
++++B.1.12、Wireshark/
++++B.1.13、xx.cs{}/
###B.1.1、Animator/
###B.1.1、Animator/ |
++B.1.1、Animator/
++++B.1.1.1、Animator/IconAnimation.cs
###B.1.1.1、Animator/IconAnimation.cs
###B.1.1.1、Animator/IconAnimation.cs |
++B.1.1.1、Animator/IconAnimation.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Animator\IconAnimation.cs
publicclassIconAnimation:MonoBehaviour{ } |
++IconAnimation.cs
//立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Animator\IconAnimation.cs usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine;
//控制动画 publicclassIconAnimation:MonoBehaviour{
void Update(){ if(transform.parent.parent.GetComponent<BoxCollider>() !=null){ if(transform.parent.parent.GetComponent<BoxCollider>().enabled){ transform.GetComponent<Animation>().enabled=true; }else{ transform.GetComponent<Animation>().enabled=false; } } }
} //立钻哥哥:public class IconAnimation:MonoBehaviour{} |
###B.1.2、AssessmentTime/
++B.1.2、AssessmentTime/
++++B.1.2.1、TimeControl.cs
###B.1.2.1、AssessmentTime/TimeControl.cs
###B.1.2.1、AssessmentTime/TimeControl.cs |
++B.1.2.1、AssessmentTime/TimeControl.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\AssessmentTime\TimeControl.cs
publicclassTimeControl:MonoBehaviour{ private floatcheckTime; private boolStartTime=false; publicboolCorrect=false;
publicvoidMsStartCheck(){} publicfloatMSGetCheckTime(){} } //立钻哥哥:public class TimeControl:MonoBehaviour{} |
++TimeControl.cs
usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine;
//考核计时,单步考核计时 publicclassTimeControl:MonoBehaviour{ private floatcheckTime; //计时器 private boolStartTime=false; //开始计时 publicboolCorrect=false; //操作是否正确
void Update(){ if(StartTime){ checkTime+=Time.deltaTime; } }
//得到考核所用时间 publicfloatMsGetCheckTime(){ StartTime=false; returncheckTime; }
} //立钻哥哥:public class TimeControl:MonoBehaviour{} |
###B.1.3、Base/
###B.1.3、Base/ |
++B.1.3、Base/
++++B.1.3.1、Base/AllEvent.cs
++++B.1.3.2、Base/ConfigureIP.cs
++++B.1.3.3、Base/ConfigureIPB.cs
++++B.1.3.4、Base/ContentPosContorl.cs
++++B.1.3.5、Base/CrystalGrabbing.cs
++++B.1.3.6、Base/Files.cs
++++B.1.3.7、Base/MoveToTarget.cs
++++B.1.3.8、Base/NetMouthEffect.cs
++++B.1.3.9、Base/NetPortPosContorl.cs
++++B.1.3.10、Base/SelfRotation.cs
++++B.1.3.11、Base/StepThree.cs
++++B.1.3.12、Base/TeachContent.cs
++++B.1.3.13、Base/TeachHintsControl.cs
++++B.1.3.14、Base/Twinkle.cs
++++B.1.3.15、Base/VibrationSound.cs
###B.1.3.1、Base/AllEvent.cs
###B.1.3.1、Base/AllEvent.cs |
++B.1.3.1、Base/AllEvent.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Base\AllEvent.cs
publicclassAllEvent:MonoBehaviour{ publicvoidMsYileShow(GameObjectgame){} IEnumerator YildShow(GameObjectgame){} } //立钻哥哥:public class AllEvent:MonoBehaviour{} |
++AllEvent.cs
usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine; usingUnityEngine.Events;
//所有的基础事件 publicclassAllEvent:MonoBehaviour{ //延迟显示 publicvoidMsYileShow(GameObjectgame){ StartCoroutine(YildShow(game)); }
IEnumeratorYildShow(GameObjectgame){ yield return new WaitForSeconds(1.0f); game.SetActive(true); }
} //立钻哥哥:public class AllEvent:MonoBehaviour{} |
###B.1.3.2、Base/ConfigureIP.cs
###B.1.3.2、Base/ConfigureIP.cs |
++B.1.3.2、Base/ConfigureIP.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Base\ConfigureIP.cs
publicclassConfigureIP:MonoBehaviour{ private staticConfigureIPmsInstance; publicTransformMainframeIPA; private ClipManagerSourcePlayer; private FilesfilesPlayer; private BasicEventsBasicEvents; private List<Transform>ListIPA=new List<Transform>();
private TransformMsGetATrsForName(stringname){} private voidMsByNameControlFicker(stringname,booloff){} private voidMsByNameControlCollider(stringname){}
private List<Transform>list_BGA=new List<Transform>(); private voidMsGetFiles(){} private voidMsOpenCollider(stringname){} private voidMsOpenFlicker(stringname){} IEnumeratorYieldOpen(stringname){}
} //立钻哥哥:public class ConfigureIP:MonoBehaviour{} |
++ConfigureIP.cs
usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine;
//网络IP配置步骤 publicclassConfigureIP:MonoBehaviour{ private staticConfigureIPmsInstance; publicstaticConfigureIP MsInstance{ get{ returnmsInstance; } set{ msInstance=value; } }
publicTransformMainframeIPA; //主机IPA
private void Awake(){ msInstance=this; }
privateClipManagerSourcePlayer; privateFilesfilesPlayer; privateBasicEventsBasicEvents;
void Start(){ BasicEvents=newBasicEvents(); SourcePlayer=gameObject.GetComponent<ClipManager>(); filesPlayer=gameObject.GetComponent<Files>();
MsGetFiles(); }
publicvoidMsStep4(){ ClipManager.MsInstance.MsPlayIndex(1,MsStep4Back); }
private voidMsStep4Back(){ }
private List<Transform>ListIPA=new List<Transform>();
//开始新的逻辑处理 publicvoidMsOpenA192(){ }
//通过名字获取A主机上的物品 private TransformMsGetATrsForName(stringname){ Transformtrans=null; for(inti= 0; i <ListIPA.Count; i++){ if(ListIPA[i].name.Equals(name)){ trans=ListIPA[i]; } }
returntrans; }
publicvoidMs192End(){} publicvoidMs168End(){} publicvoidMs01End(){} publicvoidMs012End(){} publicvoidMs1End(){} publicvoidMs255123End(){} publicvoidMs2551End(){} publicvoidMs2552End(){} publicvoidMs2553End(){} publicvoidMs02End(){}
//通过名字和bool来控制闪烁效果 private voidMsByNameControlFicker(stringname,booloff){ if(off){ MsGetATrsForName(name).GetComponent<UIFlicker>().MsForceFicker(); }else{ MsGetATrsForName(name).GetComponent<UIFlicker>().MsCloseForceFicker(); } }
//通过名字开启查找 private voidMsByNameControlCollider(){ MsGetATrsForName(name).GetComponent<UICollision>().MsOpenCollider(); }
publicvoidMsStop4(){} private voidMsStop4End(){} ... ... publicvoidMsStop21(){} private voidMsStop21End(){} publicvoidMsStopHostAEnd(){} private voidMs_StopHostAClipEnd(){}
private List<Transform>list_BGA=new List<Transform>();
//通过名字获取内容节点 private voidMsGetFiles(){ for(inti =0; i <filesPlayer.BGA.transform.childCount; i++){ list_BGA.Add(filesPlayer.BGA.transform.GetChild(i)); } }
//开启碰撞 private voidMsOpenCollider(stringname){ BasicEvents.MsGetTransByName(list_BGA,name).GetChild(0).GetComponent<UICollision>().MsOpenCollider(); }
//开启闪烁 private voidMsOpenFlicker(stringname){ if(MyConst.FirstEnter){ BasicEvents.MsGetTransByName(list_BGA,name).GetChild(0).GetComponent<UIFlicker>().MsForceFicker(); } }
IEnumeratorYieldOpen(stirngname){ yield return new WaitForSeconds(0.5f); Transformtem=null;
for(inti =0; i <list_BGA.Count; i++){ if(list_BGA[i].name.Equals(name)){ tem=list_BGA[i]; break; } }
if(tem.childCount>0){ tem.GetChild(0).GetComponent<>().MsOpenCollider(); }else{ tem.GetComponent<UICollision>().MsOpenCollider(); } }
} //立钻哥哥:public class ConfigureIP:MonoBehaviour{} |
###B.1.3.3、Base/ConfigureIPB.cs
###B.1.3.3、Base/ConfigureIPB.cs |
++B.1.3.3、Base/ConfigureIPB.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Base\ConfigureIPB.cs
++++说明:基本与“ConfigureIP.cs”类似,暂不拓展;
###B.1.3.4、Base/ContentPosContorl.cs
###B.1.3.4、Base/ContentPosContorl.cs |
++B.1.3.4、Base/ContentPosContorl.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Base\ContentPosContorl.cs
publicclassContentPosControl:MonoBehaviour{ publicTransformmsGuide; private Vector3msGuideOriginalPos=new Vector3(223,-67,-20); private Vector3msGuideMovePos=new Vector3(-1, -67,-20);
private void OnEnable(){} private void OnDisable(){} } |
++ContentPosContorl.cs
usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine;
publicclassContentPosControl:MonoBehaviour{ publicTransformmsGuide; //引导框 private Vector3msGuideOriginalPos=new Vector3(223,-67,-20); private Vector3msGuideMovePos=new Vector3(-1,-67,-20);
//物体显示 private void OnEnable(){ msGuide.GetComponent<RectTransform>().anchoredPosition3D=msGuideOriginalPos; }
//物体隐藏 private void OnDisable(){ msGuide.gameObject.SetActive(true); msGuide.GetComponent<RectTransform>().anchoredPosition3D=msGuideMovePos; }
} //立钻哥哥:public class ContentPosControl:MonoBehaviour{} |
###B.1.3.5、Base/CrystalGrabbing.cs
###B.1.3.5、Base/CrystalGrabbing.cs |
++++B.1.3.5、Base/CrystalGrabbing.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Base\CrystalGrabbing.cs
publicclassCrystalGrabbing:MonoBehaviour{ publicvoidMs_GrabLeft(Transformcont){} publicvoidMs_GrabRight(Transformcont){} publicvoidMsOnUp(){} private voidOnTriggerEnter(Colliderother){} } //立钻哥哥:public class CrystalGrabbing:MonoBehaviour{} |
++CrystalGrabbing.cs
usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine;
//水晶头的抓取 publicclassCrystalGrabbing:MonoBehaviour{ //左手柄的抓取 public void Ms_GrabLeft(Transformcont){ transform.parent=cont.transform; transform.localPosition=new Vector3(0.0063f,0.0295f,-0.0603f); transform.localEulerAngles=new Vector3(36.628f,-102.09f,117.914f); transform.GetComponent<Rigidbody>().isKinematic=true; transform.Find(“Canvas”).gameObject.SetActive(false); }
//右手柄的抓取 publicvoidMs_GrabRight(Transformcont){ transform.parent=cont.transform; transform.localPosition=new Vector3(-0.019f,-0.054f,0.045f); transform.localEulerAngles=new Vector3(-51f, 38.3f,78.4f); transform.GetComponent<Rigidbody>().isKinematic=true; }
//放弃抓取 publicvoidMsOnUp(){ transform.parent=null; transform.GetComponent<BoxCollider>().enabled=true; transform.GetComponent<Rigidbody>().isKinematic=false; }
private void OnTriggerEnter(Colliderother){ if(other.name.Equals(“NetPortBA”)){ transform.parent=null; transform.parent=other.transform; transform.localEulerAngles=Vector3.zero; transform.localPosition=new Vector3(-0.00011f, 0f, -0.00447f); transform.GetComponent<Rigidbody>().isKinematic=true; } }
} //立钻哥哥:public class CrystalGrabbing:MonoBehaviour{} |
###B.1.3.6、Base/Files.cs
###B.1.3.6、Base/Files.cs |
++B.1.3.6、Base/Files.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Base\Files.cs
publicclassFiles:MonoBehaviour{ private staticFilesmsInstance; publicstaticFilesMsInstance{ set{ msInstance=value; } get{ returnmsInstance; } }
private void Awake(){ msInstance=this; }
publicGameObjectHome; publicGameObjectHostA; //主机A publicGameObjectHostB; //主机B publicGameObjectBGA; //主机A的UI publicGameObjectBGB; //主机B的UI publicGameObjectThreeB; //步骤三所有内容 publicGameObjectThreeBPing; //步骤三中的ping的总物体 publicGameObjectThreeB43; //步骤三种字体显示 publicGameObjectThreeBcmd; //步骤三中cmd
publicGameObjectIcoWirseshark; //抓包工具的ico publicGameObjectWirseshark; //总的抓包开始 publicGameObjectWiresesharkUIFicker; //所有的抓包提示 publicTransformLookAtTarget; //看向的目标
publicGameObjectIcoNetPortA; //A机网络图标 publicGameObjectIcoNetPortB; //B机网络图标 publicGameObjectIcoNetPortThree; //B机网络电脑图标 publicGameObjectIcoNetPortWireshark; //B机抓包网络图标
publicGameObjectMasterLogic; //主控制按钮集合
publicGameObjectFive; publicGameObjectKeyBoard; //键盘
publicGameObjectNETA,NETB,NETC,NETD,NETE,NETF;
publicGameObjectStartButton; //启动按钮
} //立钻哥哥:public class Files:MonoBehaviour{} |
###B.1.3.7、Base/MoveToTarget.cs
###B.1.3.7、Base/MoveToTarget.cs |
++B.1.3.7、Base/MoveToTarget.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Base\MoveToTarget.cs
publicclassMoveToTarget:MonoBehaviour{ privatefloatSpeed=300; publicTransform[] target; private boolssMove=false; private TransformcurrentTarget; publicUnityEventMoveEnd=new UnityEvent(); publicUnityEventMoveQure=new UnityEvent();
publicvoidMsGetTarget(Colliderother){} } |
++MoveToTarget.cs
usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine; usingUnityEngine.Events;
//移动到指定目标物体 publicclassMoveToTarget:MonoBehaviour{ privatefloatSpeed=300; //移动速度 publicTransform[]target; //多个目标物体 private boolssMove=false; //开始移动 private TransformcurrentTarget; //当前目标
publicUnityEventMoveEnd=new UnityEvent(); publicUnityEventMoveQure=new UnityEvent(); //移动确认
void Update(){ if(ssMove){ if(transform.localPosition!=Vector3.zero){ if(currentTarget==null){ return; }
transform.parent=currentTarget; transform.localPosition=Vector3.MoveTowards(transform.localPosition,Vector3.zero,Speed*Time.deltaTime);
if(transform.localPostion==Vector3.zero){ MoveEnd.Invoke(); ssMove=false; } } } }
//获取到移动目标 publicvoidMsGetTarget(Colliderother){ if(other.name.IndexOf(“b_r”) >-1 ||other.name.IndexOf(“b_l”) > -1){ for(int i=0; i <target.Length; i++){ if(target[i].childCount<1){ currentTarget=target[i]; if(currentTarget==MyConst.CurrentMoveTarget){ MoveQure.Invoke(); ssMove=true; } break; } } } }
} //立钻哥哥:public class MoveToTarget:MonoBehaviour{} |
###B.1.3.8、Base/NetMouthEffect.cs
###B.1.3.8、Base/NetMouthEffect.cs |
++B.1.3.8、Base/NetMouthEffect.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Base\NetMouthEffect.cs
publicclassNetMouthEffect:MonoBehaviour{ publicUnityEventSourceEffect=new UnityEvent(); IEnumeratorYieldOpenBoxCollider(){} } |
++NetMouthEffect.cs
usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine; usingUnityEngine.Events;
//网口音乐特效:自身的碰撞体的控制 publicclassNetMouthEffect:MonoBehaviour{ publicUnityEventSourceEffect=new UnityEvent();
private void OnTriggerEnter(Colliderother){ if(other.name.IndexOf(“b_l”) > -1 ||other.name.IndexOf(“b_r”) >1){ return; } SourceEffect.Invoke(); }
//子集的个数 privateintms_int_ChildCount;
private void Update(){ if(ms_int_ChildCount!=transform.childCount){ if(transform.childCount> 0){ transform.GetComponent<BoxCollider>().enabled=false; //有物体 }else{ StartCoroutine(YieldOpenBoxCollider()); //没有物体 }
ms_int_ChildCount =transform.childCount; } }
IEnumeratorYieldOpenBoxCollider(){ yield return new WaitForSeconds(2.0f); transform.GetComponent<BoxCollider>().enabled=true; }
} //立钻哥哥:public class NetMouthEffect : MonoBehaviour{} |
###B.1.3.9、Base/NetPortPosContorl.cs
###B.1.3.9、Base/NetPortPosContorl.cs |
++B.1.3.9、Base/NetPortPosContorl.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Base\NetPortPosContorl.cs
publicclassNetPortPosControl:MonoBehaviour{ private Transformms_ParentTrans; private Vector3ms_StartPos; } |
++NetPortPosContorl.cs
usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine;
//如果水晶头掉落下面则自动回到初始位置 publicclassNetPortPosControl:MonoBehaviour{ private Transformms_ParentTrans; //父级物体 private Vector3ms_StartPos; //开始位置
void Start(){ ms_StartPos=transform.position; }
void Update(){ if(transform.position.y <-1){ transform.position=ms_StartPos; } }
} //立钻哥哥:public class NetPortPosControl:MonoBehaviour{} |
###B.1.3.10、Base/SelfRotation.cs
###B.1.3.10、Base/SelfRotation.cs |
++B.1.3.10、Base/SelfRotation.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Base\SelfRotation.cs
publicclassSelfRotation:MonoBehaviour{ publicfloatspeed=10.0f; publicenumEnumLock{ LockX,LockY,LockZ} public EnumLockLock; } |
++SelfRotation.cs
usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine;
//自旋转 publicclassSelfRotation:MonoBehaviour{ publicfloatspeed=10.0f; publicenumEnumLock{ LockX,LockY,LockZ } public EnumLockLock;
void Update(){ switch(Lock){ caseEnumLock.LockX: transform.Rotate(Vector3.left*speed*Time.deltaTime); break; caseEnumLock.LockY: transform.Rotate(Vector3.up*speed*Time.deltaTime); break; caseEnumLock.LockZ: transform.Rotate(Vector3.right*speed*Time.deltaTime); break; default: break; } }
} //立钻哥哥:public class SelfRotation:MonoBehaviour{} |
###B.1.3.11、Base/StepThree.cs
###B.1.3.11、Base/StepThree.cs |
++B.1.3.11、Base/StepThree.cs
++++立钻哥哥:\Assets\FanSceneThree\0\_Apaqi\Script\Base\StepThree.cs
publicclassStepThree:MonoBehaviour{ FilefilePlayer; List<Transform>ListMainStep=new List<Transform>(); List<Transform>ListViceStep=new List<Transform>(); List<Transform>ListMoveStep=new List<Transform>(); List<Transform>ListText=new List<Transform>(); List<Transform>ListCMD=new List<Transform>();
BasicEventsbasicEvents; ClipManagerClipPlayer;
private staticStepThreemsInstance; publicstaticStepThreeMsInstance{}
private voidMsAddList(List<Transform>list,Transformtran){} publicvoidMsCheckStepNetPost4(){} publicvoidMsStepNetPort4(){} private voidMsStepNetPort4End(){} private voidMsStepPingResult(){} IEnumeratorIntervalShowText(){} publicvoidMsStepPingOverShow(){} publicvoidMsStepPingOver(){} private voidMsStepPingOverEnd(){} } |
++立钻哥哥推荐的拓展学习链接(Link_Url):
立钻哥哥推荐的拓展学习链接(Link_Url) |
++++立钻哥哥Unity学习空间:http://blog.csdn.net/VRunSoftYanlz/
++++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
++++VR实验:以太网帧的构成:https://blog.csdn.net/VRunSoftYanlz/article/details/82598140
++++FrameVR示例V0913:https://blog.csdn.net/VRunSoftYanlz/article/details/82808498
++++FrameVR示例V1003:https://blog.csdn.net/VRunSoftYanlz/article/details/83066516
++++计算机组成原理(教材篇):https://blog.csdn.net/VRunSoftYanlz/article/details/82719129
++++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
++++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
++++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
++++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
++++设计模式简单整理: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案例(Vehicle):https://blog.csdn.net/VRunSoftYanlz/article/details/82355876
++++UML类图:https://blog.csdn.net/vrunsoftyanlz/article/details/80289461
++++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
++++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
++++JSON数据结构:https://blog.csdn.net/VRunSoftYanlz/article/details/82026644
++++CocosStudio快速入门:https://blog.csdn.net/VRunSoftYanlz/article/details/82356839
++++立钻哥哥Unity 学习空间:http://blog.csdn.net/VRunSoftYanlz/
--_--VRunSoft:lovezuanzuan--_--