Conditional - 编译屏蔽特性

public class A1 : MonoBehaviour
{
    void Start()
    {
        Func();
    }

    [System.Diagnostics.Conditional("UNITY_EDITOR")]
    void Func()
    {
        GameObject.CreatePrimitive(PrimitiveType.Cube);
    }
}

标记了Conditional特性的函数,相当于#if ....预编译指令

比如上述代码可以达到只在编辑器下可用的效果,为了测试编译,打包了一下

结果编辑器下有创建Cube,打包后的exe没有。也没有函数丢失报错,可见是对函数体内部内容进行了屏蔽

但使用要求比较苛刻,函数本身不能有返回值,且不能是重写方法等。

时间: 2024-12-29 01:33:29

Conditional - 编译屏蔽特性的相关文章

C# 特性详解

特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联.这些元数据是在编译过程中创建,并嵌入到程序集中.特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性.反射是个普通术语,它描述了在运行过程中检查和处理程序元素的功能. 特性具有以下属性: 特性可向程序中添加元数据.元数据是有关在程序中定义的类型的信息.所有的 .NET 程序集都包含指定的一组元数据,这些元数据描述在程序集中定义的类型和类型成员.可以添加自定义特性,以指定所需的任何附加信息. 可以

Android编译篇

Android的编译系统涉及面极广,包含编译工具.印像文件编译.SDK编译.NDK编译.目标系统配置等多个方面.尽管这些方面的内容烦琐而晦涩,能够參考的资料不多,可是系统设计尤其是系统架构人员必须熟悉它们. 1.源码编译 基于源码的方式进行开发,一般会依据目标环境的不同,对系统配置进行调整,如採用不同的引导器.特定的驱动.不同的文件系统.特定的属性配置等,这就要求开发人员必须熟练掌握源码的编译方法和配置. (1)映像文件 在编译完源码后.须要将生成的文件等打包成对应的文件系统.然后烧写到移动终端

.NET概念:.NET程序编译和运行

.NET概念:.NET程序编译和运行 分类: c#程序设计 2012-02-29 15:46 3001人阅读 评论(2) 收藏 举报 .net编译器语言microsoftassemblyvb.net 程序的编译和运行,总得来说大体是:首先写好的程序是源代码,然后编译器编译为本地机器语言,最后在本地操作系统运行. 下图为传统代码编译运行过程: .NET的编译和运行过程与之类似,首先编写好的源代码,然后编译为微软中间语言代码,运行的时候即时编译为本地机器语言,同时.NET代码运行时有一个CLR环境来

.NET程序的编译和运行

程序的编译和运行,总得来说大体是:首先写好的程序是源代码,然后编译器编译为本地机器语言,最后在本地操作系统运行. 下图为传统代码编译运行过程: .NET的编译和运行过程与之类似,首先编写好的源代码,然后编译为微软中间语言代码,运行的时候即时编译为本地机器语言,同时.NET代码运行时有一个CLR环境来管理程序.如下图为.NET代码编译运行过程: 下面详细介绍下编译运行时的一些概念.1.MSIL和JIT在编译使用.NET 框架创建的代码时,不是立即创建操作系统特定的本机代码,而是把代码编译为微软中间

Android应用开发编译框架流程与IDE及Gradle概要

1 背景 建议阅读本文之前先阅读<Android Studio入门到精通>和<Groovy脚本基础全攻略>及<Gradle脚本基础全攻略>三篇博客作为背景知识,这样才能更好.更系统的串起来.本文的核心就是下图: 关于Gradle的Android插件本文不会过多的说明,只给一个抛砖引玉的提示,详细使用参见文档API及Gradle配置,其实个性化的构建配置一般都是Gradle与Groovy的编写,与Android插件没太多关系,所以重点还在Groovy与Gradle构建.

Linux的程序包管理器(下)——编译安装

前面介绍了rpm和yum包管理器的用法,但有的时候一些程序仅提供了源代码比,需要我们自己编译安装.源代码之间是不会放在一个文件中,而他们直接又存在着各种各样的依赖性关系.因此需要一个源代码构建工具对源代码进行组织,和几个开发包组专门解决依赖性关系. Linux当中autoconf工具可以自动生成一个configure脚本,此脚本能检查当前系统上编译环境是否能满足当前程序的编译需要:同时,还能确定后续的编译工作所期望编译进程序中的特性.而我们从源代码网站下载下来的源代码通常都会提供configur

Qt5 编译 &amp; 打包依赖dll发布

十年前学C++的时候,无聊到把windows 文件夹下几乎所有的*.dll 都看过一遍.偶尔在程序运行时看到缺少 *.dll 的提示,都会直接找出来解决. 随着“开发平台”和“编译器”版本的逐年升级,一个程序的依赖链接库体积也越来越大,这给码农.程序猿.软件攻城狮们测试和发布都造成了比较大的麻烦! 六年前做过某专业软件汉化包的安装程序打包,感觉专业的安装程序制作工具对一些小程序来说太浪费了,而且用户会觉得不够“绿色”.如果能够简单的完成打包,并满足基本要求,那是比较好的解决方案. 前段时间有不少

WITH RECOMPILE和OPTION(RECOMPILE)区别仅仅是存储过程级重编译和SQL语句级重编译

在考虑重编译T-SQL(或者存储过程)的时候,有两种方式可以实现强制重编译(前提是忽略导致重编译的其他因素的情况下,比如重建索引,更新统计信息等等), 一是基于WITH RECOMPILE的存储过程级别重编译,另外一种是基于OPTION(RECOMPILE)的语句级重编译. 之前了解的比较浅,仅仅认为是前者就是编译整个存储过程中的所有的语句,后者是重编译存储过程中的某一个语句,也没有追究到底是不是仅仅只有这么一点区别. 事实上在某些特定情况下,两者的区别并非仅仅是存储过程级重编译和语句级重编译的

AutoCAD .NET开发大师Kean有价值的博客 2006年8月 .NET内容整理

一 Calling AutoCAD commands from .NET 使用.NET调用AutoCAD命令 In this earlier entry I showed some techniques for calling AutoCAD commands programmatically from ObjectARX and from VB(A). Thanks to Scott Underwood for proposing that I also mention calling com