Unity C# 規範
1. 掛載場景GameObject上的腳本才繼承自 MonoBehaviour 否則,不繼承(即使在邏輯上會調用 Destroy,也不可以);
2. 結構儘量使用struct,而不用class(內存和效率上差1/3);
3. 一個類裏不能有超過1個class,這個class的名字要和文件名一致;
4. 保證類文件是 UCS-2 little end格式保存;
5. 不要有超過2K行的代碼類存在;
6. 繼承自MonoBehaviour的無構造函數;
7. 字符串處理得多的時候要注意使用String 還是 StringBuilder初始化時賦String.Empty;
8. enum 只有首個賦值或不賦值;
9. 不可以使用goto、不可以重載操作符;
10. switch後必須有default;
11. 詳細的見下代碼:
using UnityEngine;
using System;
using System.Collections;
/********************************************************************************
** 作者: Simon
** 創始時間:2015-7-28
** 修改人:XXX
** 修改時間:xxxx-xx-xx
** 描述:
** 動畫類 類名和函數名用駱駝命名法 常量全部大寫
*********************************************************************************/
public class AnimalControl : MonoBehaviour
{
/// <summary>
/// 動畫 - 類變量下劃線加Pascal命名法
/// </summary>
private Animator _animator;
/// <summary>
/// 外部操作參數
/// </summary>
public int _paramNum { get; set;
}
/// <summary>
/// 在界面面板設置的值 默認爲0 如果在場景擺放就能確定的 一定要這樣寫
不要動態初始化
/// </summary>
[SerializeField]
private int _paramSet = 0;
void Start()
{
_animator = gameObject.GetComponent<Animator>();
// 不可能在遊戲運行時會發生的錯誤 使用這種處理方式
Debug.Assert(_animator != null);
// 未知事件處理使用這種處理方式
try
{
int temp1 = 3;
int temp2 = 1 / (3 - temp1);
}
catch(Exception ex)
{
// 如果是遊戲邏輯錯誤 UI層彈出界面報錯 否則使用如下
Debug.LogError(ex.Message);
}
}
}
這樣,命名規則、括號位置、大小寫注意、異常處理、公有屬性處理、參數和函數位置、註釋方法就都有了;
12. 繼承自MonoBehaviour 的單例模式,要注意對象的生存週期,和賦初始值的時間;
13. File是否存在的處理在安卓下是無效的,就不要用了,IO操作都用www處理;
14. 如果能用組合的地方,就不要用繼承實現。另外軟件架構儘量採用組件的方式去解決;
15. 如果沒有特別的必要儘量少使用委託和事件,會帶來調試上的麻煩;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.