Unity基础知识学习笔记二
生活随笔
收集整理的這篇文章主要介紹了
Unity基础知识学习笔记二
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1,object Instantiate(object original,Vector3 position,Quaternion rotation)? 克隆原始物體,并返回克隆物體。 例如:Instantiate(prefab,new Vector3(1,1,1),Qutaternion.identity);克隆一個(gè)prefab物體。 2,InputManager,輸入管理器,用于配置自定義按鍵。 3,Mathf結(jié)構(gòu)體:風(fēng)裝了常見數(shù)學(xué)計(jì)算方法的結(jié)構(gòu)體。 結(jié)構(gòu)體成員:
1,使用GUILayout 自動(dòng)布局類,默認(rèn)為縱向布局。 Label :創(chuàng)建一個(gè)自動(dòng)布局的標(biāo)簽。 Box :創(chuàng)建一個(gè)自動(dòng)布局的box . Toggle:創(chuàng)建一個(gè)開關(guān)按鈕。 HorizontalSlider:創(chuàng)建一個(gè)水平滑動(dòng)條,可以拖動(dòng)改變?cè)谧钚『妥畲笾抵g的值。 Toolbar:創(chuàng)建一個(gè)工具欄。 可以用橫向布局 代碼中必須用變量來使用,常量在服務(wù)器,或者配置文件中來配置。 2,GUI (用戶設(shè)置位置)實(shí)現(xiàn)自定義的布局類。 Button:TextArea: SelectionGrid:創(chuàng)建按鈕網(wǎng)格 BeginScrollView:滾動(dòng)條的開始部分。 EndScrollView:滾動(dòng)條的結(jié)束部分。 Window:創(chuàng)建一個(gè)彈出窗口。 3,Render 類,繼承于Component 對(duì)于任何游戲物體或組件,可以通過一個(gè)render屬性來訪問任何物體的渲染器,網(wǎng)格或粒子系統(tǒng),也可以通過它來訪問并修改材質(zhì)相關(guān)的屬性。 4,AudioSource:在Unity引擎中,音頻源(AudioSource)主要用途是在場(chǎng)景中播放2D或者3D的音頻剪輯(AudioClip)。 5,Unity中,Light組件可以用來模擬太陽,燃燒的火柴,手電筒,槍火光照亮場(chǎng)景中得對(duì)象,可以創(chuàng)造完美的視覺效果。 6,Render.material和Render.shareMaterial的區(qū)別: 改變Render.material的時(shí)候,只是改變?cè)撐矬w正在使用的渲染材質(zhì), 改變Render.shareMaterial的時(shí)候,所有正在使用該材質(zhì)的所有物體都一起變化。并且也修改儲(chǔ)存在工程里的材質(zhì)設(shè)置。不推薦使用shareMaterial進(jìn)行修改,推薦material。 音頻播放。 GUILayout 和GUi 區(qū)別:前者需要Rect,后者不需要 GUI坐標(biāo)左上為起點(diǎn)。 打地鼠游戲。 Mouse,MouseManager,GameManager.
1,安卓和Iphone 中得最上邊的 StatusBar狀態(tài)欄高度為 20px。? 2,Application類:所有與應(yīng)用程序相關(guān)的方法都封裝在Application類中。 屬性: platform 返回游戲運(yùn)行平臺(tái) runBlackground應(yīng)用程序是否在后臺(tái)運(yùn)行。 dataPath:游戲數(shù)據(jù)文件夾的路徑。 persisterDataPath:一個(gè)持久數(shù)據(jù)目錄的路徑。 temporaryCachePath:臨時(shí)數(shù)據(jù)/緩存目錄的路徑。 loadedLevel :加載的關(guān)卡索引 方法: LoadLevel:讀取新關(guān)卡后立即切換,其參數(shù)為所讀取新關(guān)卡的名稱或索引。 LoadLevelAdditive:加載一個(gè)新場(chǎng)景,當(dāng)前場(chǎng)景不會(huì)被銷毀。 OpenURL:Unity 支持在當(dāng)前設(shè)備中調(diào)用瀏覽器打開網(wǎng)頁。 Quit:退出應(yīng)用程序。在編輯器或者web播放器中退出被忽略。 異步加載: 第一種:異步加載新場(chǎng)景,當(dāng)新場(chǎng)景加載后進(jìn)入新場(chǎng)景并且銷毀之前的場(chǎng)景。 Application.LoadLevelAsync(“Game"); 第二種:同樣異步加載新場(chǎng)景,新場(chǎng)景加載后,保留之前場(chǎng)景的游戲?qū)ο蟛⑶疫M(jìn)入新場(chǎng)景。 Application.LoadLevelAddiveAsync(“Scene"); 組件,組件的通訊。
1,三種方式為當(dāng)前游戲?qū)ο筇砑咏M件:
12-19? 鼠標(biāo)事件gameObject.renderer.enabled??? //是控制一個(gè)物體是否在屏幕上渲染或顯示??而物體實(shí)際還是存在的?只是想當(dāng)于隱身?而物體本身的碰撞體還依然存在的 GameObject.Destroy()???? //表示移除物體或物體上的組件?代表銷毀該物體??實(shí)際上該物體的內(nèi)存并沒有立即釋放?而是在你下下個(gè)場(chǎng)景中槽釋放內(nèi)存資源,就是你a場(chǎng)景中Destroy了?一般是在c場(chǎng)景中才真正釋放該物體的內(nèi)存資源(這是我的體會(huì)?不知道理解錯(cuò)誤沒)?? ?? gameObject.active????? //是否在場(chǎng)景中停用該物體???在你gameObject.active?=false中?則你在場(chǎng)景中用find找不到該物體???? //如果該物體有子物體?你要用SetActiveRecursively(false)?來控制是否在場(chǎng)景中停用該物體(遞歸的) ?
12-22? 第九講:物理射線 1,Ray 類:
- Mathf.PI (Only Read)讀取圓周率。
- Mathf.Infinity 正無窮大。
- Mathf.NegativeInfinity:負(fù)無窮小
- Deg2Rad:度到弧度的轉(zhuǎn)換常量。例如float deg=30.0f;Debug.log(Mathf.Deg2Rad*deg);
- Rad2Deg:弧度到度的轉(zhuǎn)換常量。
- Mathf.Epslion:一個(gè)很小的浮點(diǎn)數(shù)值。
function isEqual(a: float, b : float) {if(a >= b-Mathf.Epsilon && a <= b + Mathf.Epsilon)return true;elsereturn false; }
- Mathf.SIn(float f);正弦值
- Mathf.Cos(float f);余弦值
- Mathf.Lerp(float from,float to,float t);返回from 和 to 之間的一個(gè)插值,基于浮點(diǎn)數(shù)t,t限制在 0~1之間。例如:void Update(){transform.position=new Vector3(Mathf.Lerp(10.0,20.0,0.5),0,0); }
- Mathf.Abs(float a);返回絕對(duì)值。
- Mathf.Clamp(float value,float min,float max);限制value的值在min 和max之間,如果value小于min,返回min,若大于max,返回max.
- normalized:
- 只是三個(gè)數(shù)而已,可以代表 位置,方向,旋轉(zhuǎn)。
1,使用GUILayout 自動(dòng)布局類,默認(rèn)為縱向布局。 Label :創(chuàng)建一個(gè)自動(dòng)布局的標(biāo)簽。 Box :創(chuàng)建一個(gè)自動(dòng)布局的box . Toggle:創(chuàng)建一個(gè)開關(guān)按鈕。 HorizontalSlider:創(chuàng)建一個(gè)水平滑動(dòng)條,可以拖動(dòng)改變?cè)谧钚『妥畲笾抵g的值。 Toolbar:創(chuàng)建一個(gè)工具欄。 可以用橫向布局 代碼中必須用變量來使用,常量在服務(wù)器,或者配置文件中來配置。 2,GUI (用戶設(shè)置位置)實(shí)現(xiàn)自定義的布局類。 Button:TextArea: SelectionGrid:創(chuàng)建按鈕網(wǎng)格 BeginScrollView:滾動(dòng)條的開始部分。 EndScrollView:滾動(dòng)條的結(jié)束部分。 Window:創(chuàng)建一個(gè)彈出窗口。 3,Render 類,繼承于Component 對(duì)于任何游戲物體或組件,可以通過一個(gè)render屬性來訪問任何物體的渲染器,網(wǎng)格或粒子系統(tǒng),也可以通過它來訪問并修改材質(zhì)相關(guān)的屬性。 4,AudioSource:在Unity引擎中,音頻源(AudioSource)主要用途是在場(chǎng)景中播放2D或者3D的音頻剪輯(AudioClip)。 5,Unity中,Light組件可以用來模擬太陽,燃燒的火柴,手電筒,槍火光照亮場(chǎng)景中得對(duì)象,可以創(chuàng)造完美的視覺效果。 6,Render.material和Render.shareMaterial的區(qū)別: 改變Render.material的時(shí)候,只是改變?cè)撐矬w正在使用的渲染材質(zhì), 改變Render.shareMaterial的時(shí)候,所有正在使用該材質(zhì)的所有物體都一起變化。并且也修改儲(chǔ)存在工程里的材質(zhì)設(shè)置。不推薦使用shareMaterial進(jìn)行修改,推薦material。 音頻播放。 GUILayout 和GUi 區(qū)別:前者需要Rect,后者不需要 GUI坐標(biāo)左上為起點(diǎn)。 打地鼠游戲。 Mouse,MouseManager,GameManager.
1,安卓和Iphone 中得最上邊的 StatusBar狀態(tài)欄高度為 20px。? 2,Application類:所有與應(yīng)用程序相關(guān)的方法都封裝在Application類中。 屬性: platform 返回游戲運(yùn)行平臺(tái) runBlackground應(yīng)用程序是否在后臺(tái)運(yùn)行。 dataPath:游戲數(shù)據(jù)文件夾的路徑。 persisterDataPath:一個(gè)持久數(shù)據(jù)目錄的路徑。 temporaryCachePath:臨時(shí)數(shù)據(jù)/緩存目錄的路徑。 loadedLevel :加載的關(guān)卡索引 方法: LoadLevel:讀取新關(guān)卡后立即切換,其參數(shù)為所讀取新關(guān)卡的名稱或索引。 LoadLevelAdditive:加載一個(gè)新場(chǎng)景,當(dāng)前場(chǎng)景不會(huì)被銷毀。 OpenURL:Unity 支持在當(dāng)前設(shè)備中調(diào)用瀏覽器打開網(wǎng)頁。 Quit:退出應(yīng)用程序。在編輯器或者web播放器中退出被忽略。 異步加載: 第一種:異步加載新場(chǎng)景,當(dāng)新場(chǎng)景加載后進(jìn)入新場(chǎng)景并且銷毀之前的場(chǎng)景。 Application.LoadLevelAsync(“Game"); 第二種:同樣異步加載新場(chǎng)景,新場(chǎng)景加載后,保留之前場(chǎng)景的游戲?qū)ο蟛⑶疫M(jìn)入新場(chǎng)景。 Application.LoadLevelAddiveAsync(“Scene"); 組件,組件的通訊。
1,三種方式為當(dāng)前游戲?qū)ο筇砑咏M件:
- gameObject.AddComponent<Light>?();
- TrailRenderer?t?=?gameObject.AddComponent?("TrailRenderer")?as?TrailRenderer;
- gameObject.AddComponent(typeof(Rigidbody))?;
- Transform?t1?=?GetComponent<Transform>?();
- Transform?t2?=?GetComponent?("Transform")?as?Transform;
- Transform?t3=?GetComponent(typeof(Transform))?as?Transform;
- SenMessage(); ? ? ? ? ? ? ? ? ?調(diào)用當(dāng)前對(duì)象的方法
- Broadcastmessage(); ? ? ? ?調(diào)用子對(duì)象的方法
- SendMessageUpwards(); ?調(diào)用父對(duì)象的方法
- animatePysics:為真時(shí)動(dòng)畫在物理循環(huán)中執(zhí)行,與運(yùn)動(dòng)學(xué)剛體結(jié)合時(shí)有用
- clip:默認(rèn)的動(dòng)畫片段
- cullingType:消隱類型:AlwaysAnimate,BasedOnRenders,BasedOnClipBounds,BasedOnUsedOnUserBounds.
- isPlaying:是否正在播放中。
- localBounds:Animation 組件在本地空間的邊界。
- playAutomatiacally:為真時(shí)自動(dòng)播放。
- this[string]:返回片段的動(dòng)畫狀態(tài)。
- wrapMode:動(dòng)畫循環(huán)模式。
- ? ? ?Animation :一個(gè)或多個(gè)Animation Clip組成,可對(duì)Clip進(jìn)行控制。
- ? ?? ?????Animation Clip:具體的某個(gè)動(dòng)作的動(dòng)畫信息。
- ? ? ? ? ??? ? ?Animation Curve:動(dòng)畫曲線信息。
- ? ? ? ? ? ? ? ?? ? ?Keyframe:構(gòu)成曲線的關(guān)鍵幀。
- ? ? ? ? ? ? ? ?? ? ?time —value;
- ? ? ? ? ??? ? ?Animation Event:動(dòng)畫播放到某一時(shí)刻觸發(fā)某個(gè)事件。
- ? ? ?播放控制:Play,Stop,CrossFade,Blend
- ? ? ?Clip訪問:AddClip,GetClipCount,RemoveClip
- ? ? ?length:動(dòng)畫的長(zhǎng)度,以妙計(jì)算(只讀)
- ? ? ?frameRate:幀速率(只讀)
- ? ? ?wrapMode:在動(dòng)畫狀態(tài)設(shè)置使用的默認(rèn)循環(huán)模式
- ? ? ?localBounds:Animation組件在本地空間的邊界
- ? ? ?
- ? ? ?SetCurve:給動(dòng)畫指定曲線一個(gè)特殊的屬性
- ? ? ?ClearCurves:從剪輯清除所有曲線
- ?????AddEvent:給剪輯添加動(dòng)畫事件
- ?????IsPaused,
- ?????IsPlaying,
- ?????IsStopped,
- ?????loop:粒子是否是循環(huán)的。
- ?????playOnAwake如果為true,將在開始的時(shí)候,自動(dòng)播放。
- ?????time:粒子播放時(shí)間
- ? ? ?duration :粒子系統(tǒng)的持續(xù)時(shí)間
- ? ? ?emissionRate:發(fā)射速率
- ? ? ?enableEmission:當(dāng)設(shè)置為false的時(shí)候,粒子系統(tǒng)不會(huì)發(fā)射粒子。
- ? ? ?gravyityModifier:縮放被應(yīng)用到Physics.gravity所定義值的影響。
- ? ? ?maxParticleCount:發(fā)射的最大粒子數(shù)量
- ? ? ?particleCount:當(dāng)前粒子的數(shù)量(只讀屬性)
- ? ? ?playbackSpeed:粒子系統(tǒng)播放速度,1為正常值。
- ? ? ?randomSpeed:隨機(jī)種子被用于粒子系統(tǒng)發(fā)射,如果設(shè)為0,將會(huì)在Awake的時(shí)候被指定為一個(gè)隨機(jī)值。
- ? ? ?safeCollisionEventSize:用于ParticleSystem.GetCollisionEvents事件的安全數(shù)組大小。
- ? ? ?simulationSpace:粒子系統(tǒng)仿真的坐標(biāo)空間,世界坐標(biāo)空間或者本地坐標(biāo)空間。?
- ? ? ?startColor:初始顏色。
- ? ? ?startDelay:初始發(fā)射延遲。
- ? ? ?startLifetime:生命周期總計(jì)(秒)
- ? ? ?startRotation:初始旋轉(zhuǎn)
- ? ? ?startSize:初始大小
- ? ? ?startSpeed:初始速度
- ? ?? int GetParticles(Particle[] particles);
- ? ?? void SetParticles(Particle[] particles,int size);
- ? ? ?Clear :清除粒子系統(tǒng)所有粒子
- ? ? ?GetCollisionEvents:獲取粒子碰撞事件,返回寫入數(shù)組里的事件數(shù)。
- ? ? ?Emit:立即發(fā)射指定的粒子
- ? ? ?GetParticles:獲取當(dāng)前粒子系統(tǒng)內(nèi)的粒子,返回被寫入Input particle數(shù)組中得粒子數(shù)量。
- ? ? ?IsAlive:判斷系統(tǒng)中是否還有粒子。
- ? ? ?Pause:暫停粒子系統(tǒng)的播放。
- ? ? ?Play:播放粒子系統(tǒng)
- ? ? ?SetParticles:設(shè)置當(dāng)前粒子系統(tǒng)的粒子,大小為被設(shè)置的粒子數(shù)量。
- ? ? ?Simulate:在給定的時(shí)間周期內(nèi)快進(jìn)仿真粒子系統(tǒng),然后暫停它
- ? ? ?Stop:停止播放粒子系統(tǒng)。
12-19? 鼠標(biāo)事件
- ? ? ?OnMouseDown
- ? ? ?OnMouseDrag:鼠標(biāo)按下,并且保持按下狀態(tài)觸發(fā),
- ? ? ?OnMouseEnter:鼠標(biāo)進(jìn)入Collider區(qū)域的時(shí)候或者進(jìn)入GUIElement的時(shí)候,被觸發(fā)
- ? ? ?OnMouseExit:
- ? ? ?OnMouseOver:處于Collider之上的時(shí)候,每幀都調(diào)用
- ? ? ?OnMouseUp
- ? ? ?OnMouseUpAsButton:當(dāng)鼠標(biāo)在同一個(gè)GUIElement或者Collider上按下又彈起得情況下會(huì)觸發(fā)。
- OnTriggerEnter?
- OnTriggerStay
- OnTriggerExit
- ?????OnCollisionEnter
- ?????OnCollisonStay
- ?????OnCollisonExit
12-22? 第九講:物理射線 1,Ray 類:
- 變量:origin :射線的起點(diǎn)、direction:射線的方向
- 構(gòu)造器 :Ray(vector3 position ,vector3 direction) ;?public Ray ray = new Ray(transform.position, transform.forward);
- 方法:Ray.GetPoint(float distance); 返回沿著射線在distance 距離單位的點(diǎn);
- Mathf.Infinity 屬性:表示正無窮大。
- Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
- RaycastHit hit;
- If(Physics.Raycast(ray,out hit,100))
- Debug.DrawLine(ray.orgin,hit.point);
- hit :如果此方法返回True,hit將包含碰撞器的更多信息。
- 此方法用于檢測(cè)一范圍內(nèi)都包含哪些碰撞器。得到這些游戲物體的信息,用于后面的操作。
- Physics.gravity:場(chǎng)景中用于所有剛性物體的重力。Physics.gravity=Vector3(0,-1.0f,0);
- Physics.minPenetrationForPenalty:最小滲透深度。當(dāng)兩個(gè)物體發(fā)生接觸碰撞時(shí),物體間的最小穿透深度值,默認(rèn)為0.05,取值范圍從0到正無窮,必須為正值。Physics.minPenetrationForPenalty=0.1f;
- Physics.bounceThreshold:反彈劾值。當(dāng)兩個(gè)物體發(fā)生碰撞的時(shí)候,相對(duì)速度小于這個(gè)值得時(shí)候,不發(fā)生反彈。默認(rèn)2
- Physics.sleepVelocity:靜止速度。如果物體的線性物體在這個(gè)速度之下的時(shí)候,物體將進(jìn)入靜止?fàn)顟B(tài)。默認(rèn)0.15.
- Physics.sleepAngularVelocity:如果物體的角速度在這個(gè)值之下的時(shí)候處于靜止?fàn)顟B(tài)。默認(rèn)0.14.
- Physics.maxAngularVelocity:設(shè)置高速旋轉(zhuǎn)物體的旋轉(zhuǎn)速度的最大值。默認(rèn)7.
- Physics.solverIterationCount:迭代次數(shù)。如果關(guān)節(jié)剛體有搖擺或行為雜亂,設(shè)置較高的值使其穩(wěn)定。默認(rèn)7.
- Raycast:在場(chǎng)景中投下與所有碰撞體碰撞的一條射線。用于獲取一個(gè)碰撞體。
- RaycastAll:用于獲取一系列,所有的碰撞體。
- Linecast:獲取一條線上的碰撞體。
- OverlapShere:獲取球形內(nèi)的碰撞體,返回collider[];
- CapsuleCast:膠囊體投射。
- CheckShere:如果定義的球體和物體發(fā)生碰撞,返回真,球體定義在世界坐標(biāo)系上。
- InoreCollision:使碰撞體1和碰撞體2無效。
- IgnoreLayerCollision:忽略層1和層2的所有碰撞。
- GetIgnoreLayerCollision:是否層1和層2之間的碰撞檢測(cè)被忽略。
轉(zhuǎn)載于:https://www.cnblogs.com/lvyongbo/p/4185366.html
總結(jié)
以上是生活随笔為你收集整理的Unity基础知识学习笔记二的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新Latex安装详细教程
- 下一篇: LaTex安装及使用