【Unity3D】脚本中 #pragma
在一些Unity脚本的开始经常可以看到#pragma strict,#pragma downcast、#pragma implicit指令。
而有的Unity脚本则没有这些指令,那这些指令有什么作用呢?
1.#pragma strict,此指令的含义是强制输入,也就是我们在声明变量时,需要精确的声明变量是什么类
型,而不是让编译器来自己推测变量的类型,因此,也不能随便的使用一个随机的名称并让编译器来为
你实例化此变量。例如,在使用此指令后,我们随意声明一个变量:
private var bobby; //是不可以的 //而需要这样: private var bobby : GameObject;//这个可以
通过使用#pragma strict,可以强制我们养成良好的编程习惯,但这在Unity中也不是必须要这样做。
2.#pragma downcast和#pragma implicit指令,则是可以与#pragma strict指令搭配使用,从而做到
“严中有松”,真是有点意思。先看#pragma implicit指令,它的意思是在使用#pragma strict指令,搭配此指令又可以含蓄的声明变量,
例如:
#pragma strict foo = 5; // 不可以 #pragma strict var foo = 5; //可以 #pragma strict #pragma implicit foo = 5; // 通过使用#pragma implicit,此句是可以的。
3.#pragma downcast语句则允许在使用#pragma strict指令时,使变量可以从super(父类型)到sub(子)类型的转换,
例如:
#pragma strict var go : GameObject; var clone : GameObject = Instantiate(go); //此语句是不可以的,因为Instantiate后返回 //的物体类型是Object,而不是GameObject #pragma strict #pragma downcast var go : GameObject; var clone : GameObject = Instantiate(go); //此语句是可以的,使用了#pragma downcast //下面的语句也是可以的: #pragma strict var go : GameObject; var clone : GameObject = Instantiate(go) as GameObject; //此语句也是可以的,因为使用了类型转换as。
相关推荐
#pragma用法大全.doc#pragma用法大全.doc
描述了#pragma 预处理指令的含义及用法。
(5) #pragma resource "*.dfm"表示把*.dfm文件中的资源加入工程。*.dfm中包括窗体 9 (6) #pragma warning( disable : 4507 34; once : 4385; error : 164 ) 9 (7) pragma comment(...) 10 (8) progma pack(n) 10
#pragma用法 汇总 doc 最近总有人问#pragma CODE SEG NEAR SEG NON BANKED 还有#pragma LINK INFO DERIVATIVE "mc9s12xs128"这些函数是什么意思 我在网上收集了一些资料希望能解大家疑惑 #pragma LINK ...
#pragma使用详解 .pdf #pragma使用详解 .pdf #pragma使用详解 .pdf
C++中#include、#pragma的含义
#pragma预处理指令详解,对#pragma的一些应用做了一些介绍,希望对你有帮助
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或...
详细介绍#pragma once用法,对于初学者可以学习一下
#pragma语句在嵌入式系统程序中不可小觑啊。
#pragma_命令集合 介绍pragma_命令的用法,使你不再迷茫
#pragma 预处理指令详解
#pragma comment()的使用
#pragma_命令集合.pdf 不错的东西 很重要
#pragma详解
本程序为再c语言中嵌入汇编语言#pragma,c语言和汇编语言各有优势,两种语言相互嵌入可以取长补短,优势互补。
c语言-编译预处理指令#pragma omp-支持多线程Multiple Threads 你不用启动多线程,该指令帮你把程序变为多线程执行,还可指定只使用几个CPU而不使用所有CPU
对编译前处理,调用有进一步了解,不用修改编译器参数
#pragma预处理命令整理