《UnityAPI.AudioSource音頻源》
版本 |
作者 |
參與者 |
完成日期 |
備註 |
UnityAPI_AudioSource_V01_1.0 |
嚴立鑽 |
|
2020.05.31 |
|
|
|
|
|
|
#《UnityAPI.AudioSource音頻源》發佈說明:
++++“UnityAPI.AudioSource音頻源”是對UnityAPI中AudioSource音頻源類的剖析和拓展;
立鑽哥哥: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/
#AudioSource音頻源
#AudioSource音頻源 |
#AudioSource音頻源++A1、Description描述++B2、Variables變量++C3、Public Function共有函數++D4、Message消息 |
#A1、Description描述
#A1、Description描述 |
++A1、Description描述
++++立鑽哥哥:AudioSource(音頻源)是在3D空間內表示一個聲音資源;
++++[namespace]:UnityEngine;
++++[Inherits from]:Behaviour;
++++一個綁定在遊戲對象上的AudioSource組件是用來在3D環境中播放聲音的;爲了讓這個聲音被聽到,還需要一個AudioListener組件;AudioListener組件通常綁定到想要使用的Camera上;這個聲音資源是3D音效還是2D音效,是由AudioImporter來設置決定的;
++++可以控制這個聲音片段用Play,Pause和Stop;可以在音頻播放的時候用volume屬性調整音量,或者查看播放時間;多個聲音片段也可以用PlayOneShot在同一個AudioSource中播放;可以使用PlayClipAtPoint在三維空間中的固定位置播放聲音片段;
++++【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
++++[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
++++[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
#B2、Variables變量
#B2、Variables變量 |
++B2、Variables變量++++B2.1、bypassEffects++++B2.2、bypassListenerEffects++++B2.3、bypassReverbZones++++B2.4、clip++++B2.5、dopplerLevel++++B2.6、ignoreListenerPause++++B2.7、ignoreListenerVolume++++B2.8、isPlaying++++B2.9、loop++++B2.10、maxDistance++++B2.11、minDistance++++B2.12、mute++++B2.13、outputAudioMixerGroup++++B2.14、panStereo++++B2.15、pitch++++B2.16、playOnAwake++++B2.17、priority++++B2.18、reverbZoneMix++++B2.19、rolloffMode++++B2.20、spatialBlend++++B2.21、spatialize++++B2.22、spread++++B2.23、time++++B2.24、timeSamples++++B2.25、velocityUpdateMode++++B2.26、volume++++B2.27、YanlzXREngine.AudioSource.Variables |
++B2.1、bypassEffects
++B2.1、bypassEffects |
++B2.1、bypassEffects
++++立鑽哥哥:是否直通效果;
public bool bypassEffects; |
++++直通效果(應用過濾器組件或全局監聽過濾器);
++B2.2、bypassListenerEffects
++B2.2、bypassListenerEffects |
++B2.2、bypassListenerEffects
++++立鑽哥哥:是否直通偵聽器效果;
public bool bypassListenerEffects; |
++++當在AudioListener設置全局效果,將不會應用到由AudioSource生成的音頻信號;如果AudioSource正在混合器組播放,將不會被應用;
++B2.3、bypassReverbZones
++B2.3、bypassReverbZones |
++B2.3、bypassReverbZones
++++立鑽哥哥:是否直通混響器;
public bool bypassReverbZones; |
++++當設置AudioSource無路由信號到與混響區域關聯的全局混響時;
++B2.4、clip
++B2.4、clip |
++B2.4、clip
++++立鑽哥哥:音頻剪輯;
public AudioClip clip; |
++++默認要播放的音頻剪輯;
using UnityEngine; using System.Collections; using YanlzXREngine;
[RequireComponent(typeof(AudioSource))] public class YanlzAudioSource : MonoBehaviour{ public AudioClip otherClip;
IEnumerator Start(){ AudioSource audio = GetComponent<AudioSource>();
audio.Play(); yield return new WaitForSeconds(audio.clip.length);
audio.clip = otherClip; audio.Play();
} //立鑽哥哥:IEnumerator Start(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
++B2.5、dopplerLevel
++B2.5、dopplerLevel |
++B2.5、dopplerLevel
++++立鑽哥哥:多普勒級別;
public float dopplerLevel; |
++++設置該AudioSource的多普勒大小;
++B2.6、ignoreListenerPause
++B2.6、ignoreListenerPause |
++B2.6、ignoreListenerPause
++++立鑽哥哥:忽略偵聽器暫停;
public bool ignoreListenerPause; |
++++允許AudioListener.pause屬性被設置爲true的時候依然允許AudioSource播放;這個通常用於菜單項聲音或者背景音樂的暫停功能;
++++該屬性僅能通過腳本設置並不能被序列化;
++B2.7、ignoreListenerVolume
++B2.7、ignoreListenerVolume |
++B2.7、ignoreListenerVolume
++++立鑽哥哥:忽略偵聽器聲音;
public bool ignoreListenerVolume; |
++++這個使得AudioSource不受AudioListener組件音量值的影響;
++++當播放背景音樂時啓用這項;當播放背景音樂想一個單獨的設置,正常的聲音不受影響;
++B2.8、isPlaying
++B2.8、isPlaying |
++B2.8、isPlaying
++++立鑽哥哥:是否正播放;
public bool isPlaying; |
++++該音頻剪輯是否正播放(只讀)?
++++注意:當AudioSource.Pause()被調用時,AudioSource.isPlaying返回false;當再次使用AudioSource.Play()時,將返回true;
//When the audio component has stopped playing, play otherClip using UnityEngine; using System.Collections; using YanlzXREngine;
[RequireComponent(typeof(AudioSource))] public class YanlzAudioSource : MonoBehaviour{ public AudioClip otherClip; AudioSource audio;
void Start(){ audio = GetComponent<AudioSource>(); } //立鑽哥哥:void Start(){}
void Update(){ if(!audio.isPlaying){ audio.clip = otherClip; audio.Play(); } //立鑽哥哥:if(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
++B2.9、loop
++B2.9、loop |
++B2.9、loop
++++立鑽哥哥:是否循環;
public bool loop; |
++++該音頻剪輯是否循環?
++++如果當播放AudioSource時禁用循環,該聲音將在當前循環結束之後停止;
++B2.10、maxDistance
++B2.10、maxDistance |
++B2.10、maxDistance
++++立鑽哥哥:最大距離;
public float maxDistance; |
++++(對數衰減)最大距離是一個聲音停止衰減的距離;
++++(線性衰減)最大距離是在聲音完全聽不見的距離;
++B2.11、minDistance
++B2.11、minDistance |
++B2.11、minDistance
++++立鑽哥哥:最小距離;
public float minDistance; |
++++在最小距離內,AudioSource將停止增大音量;
++++在最小距離之外,音量開始減弱;
++B2.12、mute
++B2.12、mute |
++B2.12、mute
++++立鑽哥哥:靜音;
public bool mute; |
++++是否靜音音頻源;Mute是設置音量爲0,取消靜音是恢復原來的音量;
//Mutes-Unmutes the sound from this object each time the user presses space using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzAudioSource : MonoBehaviour{ AudioSource audio;
void Start(){ audio = GetComponent<AudioSource>(); } //立鑽哥哥:void Start(){}
void Update(){ if(Input.GetKeyDown(KeyCode.Space)){ audio.mute = false; }else{ audio.mute = true; } } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
++B2.13、outputAudioMixerGroup
++B2.13、outputAudioMixerGroup |
++B2.13、outputAudioMixerGroup
++++立鑽哥哥:輸出音頻混合器組;
public Audio.AudioMixerGroup outputAudioMixerGroup; |
++++AudioSource應該路由的目標組信號;
++B2.14、panStereo
++B2.14、panStereo |
++B2.14、panStereo
++++立鑽哥哥:聲像立體聲;
public float panStereo; |
++++以立體聲方式聲像一個正播放的聲音(左或右),這僅用於單聲道或立體聲;
++++在3D聲像計算被考慮之前,應用該聲像;換句話說,該聲像是在3D空間化之前,立體聲聲像影響聲音的左右平衡;
++++聲像單聲道聲音從左到右使用常數冪聲像(非線性漸變);這意味着當聲像爲0.0時,每個揚聲器的聲音的平衡是左71%和右71%,而不是左50%和右50%;這個提供了(可聽見)更平滑的聲像;
++++立體聲每個左/右的升降漸變的值取決於指定的聲像位置;這意味着當聲像爲0.0時,每個揚聲器的聲音的平衡是左100%和右100%,當聲像爲-1.0時,僅左邊的立體聲可聽見,當聲像爲1.0時,僅右邊的立體聲可聽見;
++++取值範圍是-1.0~1.0;
++++-1.0表示完全左聲道;0.0表示中間,左右平衡;1.0表示完全右聲道;默認爲0.0;
++B2.15、pitch
++B2.15、pitch |
++B2.15、pitch
++++立鑽哥哥:音調;
public float pitch; |
++++音頻源的音調;
using UnityEngine; using System.Collections; using YanlzXREngine;
[RequireComponent(typeof(AudioSource))] public class YanlzAudioSource : MonoBehaviour{ public int startingPitch = 4; public int timeToDecrease = 5; AudioSource audio;
void Start(){ audio = GetComponent<AudioSource>(); audio.pitch = startingPitch; } //立鑽哥哥:void Start(){}
void Update(){ if(audio.pitch > 0){ audio.pitch -= Time.deltaTime * startingPitch / timeToDecrease; } //立鑽哥哥:if(){} } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
++B2.16、playOnAwake
++B2.16、playOnAwake |
++B2.16、playOnAwake
++++立鑽哥哥:是否喚醒時播放;
public bool playOnAwake; |
++++如果設置爲true,音頻源將在喚醒時自動播放;
++B2.17、priority
++B2.17、priority |
++B2.17、priority
++++立鑽哥哥:優先級;
public int priority; |
++++設置AudioSource的優先級;
++++當有播放的AudioSource比可用的硬件通道多時,Unity虛擬化AudioSource;AudioSource帶有最低的優先級(和可聽度)被首先虛擬化;優先級是一個整數在0到256之間;0=最高優先級,256=最低優先級;
++B2.18、reverbZoneMix
++B2.18、reverbZoneMix |
++B2.18、reverbZoneMix
++++立鑽哥哥:混響器混合;
public float reverbZoneMix; |
++++信號來自AudioSource將混合到有關混響區全局混響的數量;
++++範圍從0~1之間是線性(像聲音屬性)而範圍從1~1.1是額外的提高範圍,允許提高10dB迴響信號;當試圖模擬從近到遠的聲音,組合有關基於距離的衰減曲線是很有用的;
++++注意:在Unity5.0之前,混響區不能應用於2D聲音;在Unity5.0包括2D和3D通過Spatial Blend(空間混合)參數,混響可以應用任何聲音;因此當在Unity5.0版本之前導入項目,對於所有的2D聲音,這個參數將被設置爲0,當現在就可以手工調節了;
++B2.19、rolloffMode
++B2.19、rolloffMode |
++B2.19、rolloffMode
++++立鑽哥哥:衰減模式;
public AudioRolloffMode rolloffMode; |
++++設置/獲取AudioSource隨着距離怎樣衰減;
++B2.20、spatialBlend
++B2.20、spatialBlend |
++B2.20、spatialBlend
++++立鑽哥哥:空間混合;
public float spatialBlend; |
++++設置該音頻源由3D空間計算(衰減、多普勒等)被影響多少;0.0使聲音完全2D,1.0使聲音完全3D;
++++除此之外確定AudioSource聽到2D或3D源,這個屬性是非常有用的在兩種模式之前進行變化;
++++在立體聲聲像被確定之後3D空間計算才應用,可以與panStereo結合使用;
++++在2種模式之間的變化很有用的,對於聲音在更接近聽衆時應當逐步聽到正常2D聲音;
++B2.21、spatialize
++B2.21、spatialize |
++B2.21、spatialize
++++立鑽哥哥:空間化;
public bool spatialize; |
++++啓用或禁用空間化;
++++自定義空間化效果通過頭相關變換函數(HRTF)改善聲音傳播的更真實,使聽衆通過頭部的過濾器和耳朵之間的微小延遲更能感覺到聲音的方向;Unity支持自定義空間效果可選通過本地的音頻插件系統,如果插件存在,將在對應的AudioSource顯示“Spatialize”複選框,如果沒有插件存在(在音頻管理器設置),試圖設置該屬性爲true將會報一個錯誤警告;
++B2.22、spread
++B2.22、spread |
++B2.22、spread
++++立鑽哥哥:擴散;
public float spread; |
++++設置3D立體聲或多聲道揚聲器的空間的擴散角度;
++++0表所有聲音通道位於相同的揚聲器位置並且是單聲道;360表示所有子通道位於對面揚聲器的位置到揚聲器位置,該應該根據3D位置;默認爲0;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzAudioSource : MonoBehaviour{
void OnTriggerEnter(Collider other){ AudioSource audio = other.GetComponent<AudioSource>(); if(audio){ audio.spread = 0; } //立鑽哥哥:if(){} } //立鑽哥哥:void OnTriggerEnter(){}
void OnTriggerExit(Collider other){ AudioSource audio = other.GetComponent<AudioSource>(); if(audio){ audio.spread = 360; } //立鑽哥哥:if(){} } //立鑽哥哥:void OnTriggerExit(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
++B2.23、time
++B2.23、time |
++B2.23、time
++++立鑽哥哥:時間;
public float time; |
++++以秒爲單位的播放位置;
++++使用這個讀取當前播放時間或定位一個新的播放時間;
++++注意:在壓縮的音軌位置,並不一定反映實際時間,在壓縮的音頻被表示爲一個所謂設置的數據包;一個數據包的長度取決於壓縮設置,經常是每個包2~3秒;
using UnityEngine; using System.Collections; using YanlzXREngine;
public class YanlzAudioSource : MonoBehaviour{ AudioSource audio;
void Start(){ audio = GetComponent<AudioSource>(); } //立鑽哥哥:void Start(){}
void Update(){ if(Input.GetKeyDown(KeyCode.Return)){ audio.Stop(); audio.Play(); } //立鑽哥哥:if(){}
Debug.Log(audio.time);
} //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
++B2.24、timeSamples
++B2.24、timeSamples |
++B2.24、timeSamples
++++立鑽哥哥:時間採樣;
public int timeSample; |
++++在PCM取樣的播放位置;
++++使用這個讀取當前播放時間或定位一個新的播放時間取樣,如果想比time變量允許更精確的計時;
using UnityEngine; using System.Collections; using YanlzXREngine;
[RequireComponent(typeof(AudioSource))] public class YanlzAudioSource : MonoBehaviour{ AudioSource audio;
void Start(){ audio = GetComponent<AudioSource>(); } //立鑽哥哥:void Start(){}
void Update(){ if(Input.GetKeyDown(KeyCode.Return)){ audio.Stop(); audio.Play(); } //立鑽哥哥:if(){}
Debug.Log(audio.timeSample); } //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
++B2.25、velocityUpdateMode
++B2.25、velocityUpdateMode |
++B2.25、velocityUpdateMode
++++立鑽哥哥:速度更新模式;
public AudioVelocityUpdateMode velocityUpdateMode; |
++++AudioSource是否應該以固定或動態的方式更新?
++++如果遇到了該源的多普勒效應模擬問題,請確保設置該更新與AudioSource的移動在同一循環內;如果它被附加到一個剛體,默認設置將自動設置該源以固定的更新週期更新,其他方式以動態方式;
++B2.26、volume
++B2.26、volume |
++B2.26、volume
++++立鑽哥哥:音量;
public float volume; |
++++音頻源的音量(0.0~1.0);
#C3、Public Functions公有函數
#C3、Public Functions公有函數 |
++C3、Public Functions公有函數++++C3.1、GetCustomCurve++++C3.2、GetSpatializerFloat++++C3.3、Pause++++C3.4、Play++++C3.5、PlayDelayed++++C3.6、PlayOneShot++++C3.7、PlayScheduled++++C3.8、SetCustomCurve++++C3.9、SetScheduledEndTime++++C3.10、SetScheduledStartTime++++C3.11、SetSpatializerFloat++++C3.12、Stop++++C3.13、UnPause++++C3.14、YanlzXREngine.AudioSource.PublicFunctions |
++C3.1、GetCustomCurve
++C3.1、GetCustomCurve |
++C3.1、GetCustomCurve
++++立鑽哥哥:獲取自定義曲線;
public AnimationCurve GetCustomCurve(AudioSourceCurveType type); |
++++[type]:獲取曲線的類型;
++++[返回值]:對應於給定曲線類型自定義動畫曲線;
++++獲取給定AudioSourceCurveType類型的當前自定義曲線;
++++注意:如果沒有曲線設置或對應曲線類型的值設置器已經設置,將返回對應於當前值的單個幀動畫曲線;
++C3.2、GetSpatializerFloat
++C3.2、GetSpatializerFloat |
++C3.2、GetSpatializerFloat
++++立鑽哥哥:獲取空間化浮點數;
public bool GetSpatializerFloat(int index, out float value); |
++++[index]:要讀取的用戶自定義參數的索引;
++++[value]:讀取用戶自定義參數的返回值;
++++[返回值]:如果參數可讀,返回true;
++++讀取附加到音頻源的自定義空間化效果的一個用戶自定義參數;
++++由於這個是在自定義檢視面板內部使用,控制自定義空間化效果作爲本地音頻插件;這是在UI由空間化進行必要的裁剪,本地是通過音頻插件的setparameter/getparameter回調;
++C3.3、Pause
++C3.3、Pause |
++C3.3、Pause
++++立鑽哥哥:暫停;
public void Pause(); |
++++暫停正播放的音頻剪輯;
++C3.4、Play
++C3.4、Play |
++C3.4、Play
++++立鑽哥哥:播放;
public void Play(ulong delay=0); |
++++[delay]:採樣的延遲數,假設44100Hz採樣率(意思是Play(44100)將正好延遲播放1秒);
++++播放音頻剪輯,帶有可選延遲參數;
++++延遲參數已被棄用,請使用新的PlayDelayed功能,而不是指在幾秒的延遲;
++++注意:爲了獲取準確的帶有不同採樣率的採樣(比如44.1kHz),必須做這個匹配;延遲帶有音頻剪輯的音頻源,比如32kHz,帶有16K採樣(0.5秒)通過Play(22050)播放,(44100/32000)*16000=22050;
++++注意:當音頻剪輯被播放,AudioSource.PlayScheduled將給更多的精確控制;
using UnityEngine; using System.Collections; using YanlzXREngine;
[RequireComponent(typeof(AudioSource))] public class YanlzAudioSource : MonoBehaviour{ AudioSource audio;
void Start(){ audio = GetComponent<AudioSource>(); audio.Play(); audio.Play(44100); } //立鑽哥哥:void Start(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
++C3.5、PlayDelayed
++C3.5、PlayDelayed |
++C3.5、PlayDelayed
++++立鑽哥哥:延遲播放;
public void PlayDelayed(float delay); |
++++[delay]:指定延遲時間,單位秒;
++++播放一個帶有指定延遲的音頻剪輯,單位秒;建議用戶替代老函數Play(delay),接受指定採樣相對於44.1kHz參考速率作爲參數延遲;
++++注意:當播放調用帶有延遲參數時,這個函數替代Play(delay)函數;在該函數延遲參數必須被指定爲相對於44100的參數速率的採樣;當引擎運行不同的採樣率是很不方便的,並且聲源甚至有不同的速率;運行指定的延遲使這些都相對獨立;
++C3.6、PlayOneShot
++C3.6、PlayOneShot |
++C3.6、PlayOneShot
++++立鑽哥哥:播放一次;
public void PlayOneShot(AudioClip clip, float volumeScale=1.0F); |
++++[clip]:要播放的剪輯;
++++[volumeScale]:音量的大小(0~1);
++++播放一個音頻剪輯,並且通過volumeScale縮放音頻源音量;
using UnityEngine; using System.Collections; using YanlzXREngine;
[RequireComponent(typeof(AudioSource))] public class YanlzAudioSource : MonoBehaviour{ public AudioClip impact; AudioSource audio;
void Start(){ audio = GetComponent<AudioSource>(); } //立鑽哥哥:void Start(){}
void OnCollisionEnter(){ audio.PlayOneShot(impact, 0.7F); } //立鑽哥哥:void OnCollisionEnter(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
++C3.7、PlayScheduled
++C3.7、PlayScheduled |
++C3.7、PlayScheduled
++++立鑽哥哥:定時播放;
public void PlayScheduled(double time); |
++++[time]:當聲音應開始播放時,引用AudioSettings.dspTime絕對時間線上的時間;
++++在指定的時間播放剪輯,時間是讀取AudioSettings.dspTime絕對時間線;
++++這是做音樂播放器的首先方法,因爲它是獨立的幀速率,並且給了音頻系統足夠的時間來準備播放的聲音,要打開媒體,以及緩衝需要很多的時間(流),而不會引起突然的CPU峯值;
using UnityEngine; using System.Collections; using YanlzXREngine;
[RequireComponent(typeof(AudioSource))] public class YanlzAudioSource : MonoBehaviour{ public float bpm = 140.0F; public int numBeatsPerSegment = 16; public AudioClip[] clips = new AudioClip[2]; private double nextEventTime; private int flip = 0; private AudioSource[] audioSources = new AudioSource[2]; private bool running = false;
void Start(){ int i = 0; while(i < 2){ GameObject child = new GameObject(“YanlzPlayer”); child.transform.parent = gameObject.transform; audioSources[i] = child.AddComponent<AudioSource>(); i++; } //立鑽哥哥:while(){}
nextEventTime = AudioSettings.dspTime + 2.0F; running = true;
} //立鑽哥哥:void Start(){}
void Update(){ if(!running){ return; } //立鑽哥哥:if(!running){}
double time = AudioSettings.dspTime; if(time + 1.0F > nextEventTime){ audioSources[flip].clip = clips[flip]; audioSources[flip].PlayScheduled(nextEventTime);
Debug.Log(“立鑽哥哥:Scheduled source ” + flip + “ to start at time ” + nextEventTime);
nextEventTime += 60.0F / bpm * numBeatsPerSegment; flip = 1 - flip; } //立鑽哥哥:if(time + 1.0F > nextEventTime){}
} //立鑽哥哥:void Update(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
++C3.8、SetCustomCurve
++C3.8、SetCustomCurve |
++C3.8、SetCustomCurve
++++立鑽哥哥:設置自定義曲線;
public void SetCustomCurve(AudioSourceCurveType type, AnimationCurve curve); |
++++[type]:曲線的類型;
++++[curve]:給定類型的曲線;
++++設置給定AudioSourceCurveType類型的自定義曲線;
++++該曲線將被縮放,因此它應用在從音頻源的audiosource.maxdistance;
++++注意:處於性能因素,內部動畫曲線縮放的範圍是0~1之間;這意味着剛剛設置的曲線,再調用AudioSource.GetCustomCurve將返回一個可能不同的曲線;
++C3.9、SetScheduledEndTime
++C3.9、SetScheduledEndTime |
++C3.9、SetScheduledEndTime
++++立鑽哥哥:設置定時結束時間;
public void SetScheduledEndTime(double time); |
++++[time]:時間,單位秒;
++++更改已定時播放的聲音將結束的時間;注意:取決於時間,不是所有的重定時請求被滿足;
++++請注意:指定的時間仍然是絕對時間線的時間,意味着當到達時間時聲音將停止,不管什麼時候開始;因此,如果有個5秒長時間,想要在T時間播放,並在3秒後停止(例如,聲音的最後2秒消音),必須指定結束時間是T+3;這個函數用於音樂系統克服基於幀的有損編碼解碼器的信號不連續性是很有用的;
using UnityEngine; using System.Collections; using YanlzXREngine;
[RequireComponent(typeof(AudioSource))] public class YanlzAudioSource : MonoBehaviour{ public AudioClip sourceClip; private AudioSource audio1; private AudioSource audio2; private AudioClip cutClip1; private AudioClip cutClip2; private float overlap = 0.2F; private int len1 = 0; private int len2 = 0;
void Start(){ GameObject child;
child = new GameObject(“YanlzPlayer1”); child.transform.parent = gameObject.transform; audio1 = child.AddComponent<AudioSource>();
child = new GameObject(“YanlzPlayer2”); child.transform.parent = gameObject.transform; audio2 = child.AddComponent<AudioSource>();
int overlapSamples;
if(sourceClip != null){ len1 = sourceClip.samples / 2; len2 = sourceClip.samples - len1; overlapSamples = (int)(overlap * sourceClip.frequency);
cutClip1 = AudioClip.Create(“cut1”, len1 + overlapSamples, sourceClip.channels, sourceClip.frequency, false, false); cutClip1 = AudioClip.Create(“cut2”, len2 + overlapSamples, sourceClip.channels, sourceClip.frequency, false, false);
float[] smp1 = new float[(len1 + overlapSamples) * sourceClip.channels]; float[] smp2 = new float[(len2 + overlapSamples) * sourceClip.channels]; sourceClip.GetData(smp1, 0); sourceClip.GetData(smp2, len1 - overlapSamples);
cutClip1.SetData(smp1, 0); cutClip2.SetData(smp2, 0);
}else{ overlapSamples = (int)overlap * cutClip1.frequency; len1 = cutClip1.samples - overlapSamples; len2 = cutClip2.samples - overlapSamples; } //立鑽哥哥:if(sourceClip != null){}
} //立鑽哥哥:void Start(){}
void OnGUI(){ if(GUI.Button(new Rect(10, 50, 230, 40), “Trigger source”)){ audio1.PlayOneShot(sourceClip); }
if(GUI.Button(new Rect(10, 100, 230, 40), “Trigger cut 1”)){ audio1.PlayOneShot(cutClip1); }
if(GUI.Button(new Rect(10, 150, 230, 40), “Trigger cut 2”)){ audio1.PlayOneShot(cutClip2); }
if(GUI.Button(new Rect(10, 200, 230, 40), “Play stitched”)){ audio1.clip = cutClip1; audio2.clip = cutClip2; double t0 = AudioSettings.dspTime + 3.0F; double clipTime1 = len1; clipTime1 /= cutClip1.frequency; audio1.PlayScheduled(t0); audio1.SetScheduledEndTime(t0 + clipTime);
Debug.Log(“立鑽哥哥:t0 = ” + t0 + “, clipTime1 = ” + clipTime1 + “, cutClip1.frequency = ” + cutClip1.frequency); Debug.Log(“立鑽哥哥:cutClip2.frequency = ” + cutClip2.frequency + “, samplerate = ” + AudioSettings.outputSampleRate);
audio2.PlayScheduled(t0 + clipTime1); audio2.time = overlap; } //立鑽哥哥:if(GUI.Button(“Play stitched”)){}
} //立鑽哥哥:void OnGUI(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
++C3.10、SetScheduledStartTime
++C3.10、SetScheduledStartTime |
++C3.10、SetScheduledStartTime
++++立鑽哥哥:設置定時開始時間;
public void SetScheduledStartTime(double time); |
++++[time]:時間,單位秒;
++++更改已定時播放的聲音將開始的時間;
++++注意:取決於時間,不是所有的重定時請求被滿足;
++++一個有趣的例子是由遊戲事件啓動的stinger聲效,但是想通過音樂的指定節奏,然後這個函數可用於推遲stinger聲效,直到下一個音樂過渡;
++++注意:一般情況下,最好使用PlayScheduled正常播放音效;如果已經計劃以後改變其開始時間,僅使用SetScheduledStartTime;調用SetScheduledStartTime不會導致非定時的音頻剪輯播放;
++C3.11、SetSpatializerFloat
++C3.11、SetSpatializerFloat |
++C3.11、SetSpatializerFloat
++++立鑽哥哥:設置空間化浮點數;
public bool SetSpatializerFloat(int index, float value); |
++++[index]:要設置的用戶自定義參數的索引;
++++[value]:用戶自定義參數的新值;
++++[返回值]:如果該參數以及被設置,返回true;
++++設置一個附加到音頻源的自定義空間化效果的一個用戶自定義參數;
++++由於這個是在自定義檢視面板內部使用,控制自定義空間化效果作爲本地音頻插件;這是在UI由空間化進行必要的裁剪,本地是通過音頻插件的setparameter/getparameter回調;
++C3.12、Stop
++C3.12、Stop |
++C3.12、Stop
++++立鑽哥哥:停止;
public void Stop(); |
++++停止播放該剪輯;
++C3.13、UnPause
++C3.13、UnPause |
++C3.13、UnPause
++++立鑽哥哥:取消暫停;
public void UnPause(); |
++++取消該音頻源已暫停的播放;
++++這個函數類似於在已暫停的音頻源上調用Play(),除了如果當前沒有暫停,它不會創建一個新的播放聲音;
++++這個也用於如果已經暫停並且想要繼續播放,而無需創建一個新的播放聲音;
#D4、Static Functions靜態函數
#D4、Static Functions靜態函數 |
++D4、Static Functions靜態函數++++D4.1、PlayClipAtPoint++++D4.2、YanlzXREngine.AudioSource.StaticFunctions |
++D4.1、PlayClipAtPoint
++D4.1、PlayClipAtPoint |
++D4.1、PlayClipAtPoint
++++立鑽哥哥:指定位置播放剪輯;
public static void PlayClipAtPoint(AudioClip clip, Vector3 position, float volume=1.0F); |
++++[clip]:要播放的音頻數據;
++++[position]:在世界空間,聲音起源的位置;
++++[volume]:播放的音量;
++++在世界空間給定位置播放一個音頻剪輯;
++++這個函數創建一個音頻源,但只處理一次剪輯播放;
using UnityEngine; using System.Collections; using YanlzXREngine;
[RequireComponent(typeof(AudioSource))] public class YanlzAudioSource : MonoBehaviour{ public AudioClip clip;
void Start(){ AudioSource.PlayClipAtPoint(clip, new Vector3(5, 1, 2)); } //立鑽哥哥:void Start(){}
} //立鑽哥哥:public class YanlzAudioSource{} |
#E5、立鑽哥哥對AudioSource類的拓展
#E5、立鑽哥哥對AudioSource類的拓展 |
++++【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
++++[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
++++[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
++++[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--_--