zoukankan      html  css  js  c++  java
  • 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
    
    
        }
        
    }
    如果你感兴趣,你可以把你妹妹介绍给我
  • 相关阅读:
    20.12.21 leetcode316
    20.12.18 leetcode389
    NOIP2017退役记
    DNA序列 LOJ NOIP模拟赛 D1T1 字符串哈希
    解药还是毒药 codevs2594 状态压缩 BFS
    换教室 vijos2005 NOIP2016 D1T3 期望DP 图论最短路(雾)
    都市大飙车 UESTC 1652 概率DP
    添加括号 vijos1038 动态规划 区间DP
    一道神奇的并查集
    还有一道神奇的暴力(正解是要旋转坐标轴的)
  • 原文地址:https://www.cnblogs.com/plateFace/p/4282556.html
Copyright © 2011-2022 走看看