Unity 预处理命令

我们经常在代码里面写Debug.Log()调试代码,游戏后门代码.这些代码在发布时无意义的,我们就需要慢慢的删除掉它们(很痛苦),有什么办法让它们在编译的时候并不加入编译代码中呢?  预处理命令..比如游戏准备发布电脑和安卓分别控制角色鼠标移动,双手控制移动并不需要复制两份项目分别开发,可以使用预处理命令进行分开编程!

下面介绍几个常用的预处理命令:

UNITY_EDITOR    只在编辑器中编译

UNITY_ANDROID  只在安卓下编译

UNITY_STANDALONE_OSX  只在苹果下编译

 

关于UNITY版本预处理命令, 我们常常看见NGUI插件根据UNITY版本不同,组件在Inspector视图下显示也不同

UNITY_2_6,

UNITY_2_6_1,

UNITY_3_5等等:

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour
{

    void Start()
    {

#if UNITY_EDITOR
        Debug.Log("只在编辑器中输出");
#endif

#if UNITY_ANDROID
        Debug.Log("Android平台中输出");          //你定义的方法也在这里面,编辑器也不会帮你智能提示的
#elif UNITY_STANDALONE_OSX
        Debug.Log("OSX平台中输出");
#endif



//不在Unity编辑器,IOS和android系统上面
#if (UNITY_ios || UNITY_ANDROID)
    Debug.Log("IOS 和 安卓上面");
#else

#endif

    }
}

 

二、Unity定义全局的宏

下面演示定义A和B两个宏.每一个类文件都可以判断这两个宏

 

如果你使用的Visual Studio编辑器,那么也可以在项目中定义全局宏

 

 代码实现

#define D

using UnityEngine;
using System.Collections;

public class Demo : MonoBehaviour {

    // Use this for initialization
    void Start () {
#if A
        Debug.Log("A");
#endif

#if B
        Debug.Log("B");
#endif

#if C
        Debug.Log("C");     //宏没有定义显示灰色
#endif

#if D
        Debug.Log("D");     //类文件头部定义了D
#endif


    }
    
}

 

posted @ 2015-02-09 21:51  盘子脸  阅读(3877)  评论(0编辑  收藏  举报