學習筆記
- 1.設計模式六大原則
- 2.好用的單例模式
- 3.unity粒子效果的使用
- 4.拓展Tarnsform使用深度優先演算法
- 5.this的拓展作用
1.設計模式六大原則
1.單一職責原則
單一職責原則是實作高內聚、低耦合的指導方針,保持類中職責單一,方便拓展,
2.開發封閉原則
指對拓展開放,對修改封閉,使程式更好的更新他的功能,
3.里氏替換原則
所有的基類都能透明的使用其子類,
擴充:保持基類與子類的欄位與方法一致可以使其用基類完美的使用子類實作多型,
如果子類有屬于自己的獨特方法,則需實體化子類而不是通過基類實體化,
4.依賴倒轉原則
抽象不應該依賴于細節,細節應當依賴于抽象,換言之,要針對介面編程,而不是針對實作編程,
5.迪米特原則
一個類與另一個類發生聯系使用第三個類進行溝通,減少類與類之間的聚合,
6.合成聚合復用原則
能使用聚合就不去使用繼承,提高代碼的復用和靈活性,
總結:六大原則都是為了“弱耦合,強聚合”服務,
2.好用的單例模式
對于unity中的場景切換,我們經常會需要使用一些切換場景后依舊可以使用甚至是從其他場景
繼承過來變數的值,這時可以使用函式
DontDestroyOnLoad(Object Target);//切換場景時不會被清除
使變數唯一便可使用單例模式,代碼如下:
private static GameManager Instance;//單例模式只讓存在一個
void Awake()//在啟動時檢查
{
CheckGameobject();
CheckSingle();
}
private void CheckGameobject()//刪掉tag不是GM的Gamemanger
{
if (tag=="GM")
{
return;
}
Destroy(this);
}
private void CheckSingle()//刪掉多余的GameManager
{
if (Instance==null)
{
Instance = this;
DontDestroyOnLoad(gameObject);
return;
}
Destroy(this);
}
3.unity粒子效果的使用
1.細節提示

1處調小可以使圖示變小(例如攝像機圖示)
2處可以不顯示邊框
一,最主要的設定界面

Duration 為粒子效果的持續時間
Looping 為是否回圈
Start 為單個粒子的生命周期(可以存在的時間)
Start Speed 為粒子開始時的速度 為0可以讓粒子停留在原處
Max Particals 為生成的最大粒子數
二,Render(渲染,著色)

放入材質球可以讓粒子改變樣式,像什么光陣之類的都能更改
三,隨著時間使粒子變化大小

調節曲線來實作大小的變換
4.拓展Tarnsform使用深度優先演算法
代碼如下:
public static Transform DeepFind(this Transform parent,string TargetName)//深度優先查找
{
Transform TeamTransform = null;
foreach (Transform child in parent)
{
if (child.name==TargetName)
{
return child;
}
else
{
TeamTransform = DeepFind(child,TargetName);
if (TeamTransform!=null)
{
return TeamTransform;
}
}
}
return null;
}
使用方法如下代碼所示:
public GameObject WHR;
WHR = transform.DeepFind("WeaponHandleR").gameObject;//以自身作為父物體往下面找weaponHandleR
5.this的拓展作用
代碼依舊為上一個代碼,
public static class Helper
{
public static string GetSex(this Person item)
{
return item.Sex;
}
}
//呼叫:
Person person = new Person();
person.GetSex();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342308.html
標籤:其他
上一篇:HTML5+CSS期末大作業:個人主頁介紹主題——-我們的摯愛 (7頁) 學生DW網頁設計作業成品 大學生個人網站作業模板 簡單個人網頁制作
