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