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. 如果没有特别的必要尽量少使用委托和事件,会带来调试上的麻烦;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值