獲取 類(lèi)型
typeof( c#里的東西 ) 只能獲取 c#的東西,對(duì)于 腳本里的 表/數(shù)組/變量等使用它是會(huì)出錯(cuò)誤的
例如腳本里寫(xiě)
var t = GameObject( "測(cè)試" );
typeof( t );//是 GameObject 類(lèi)型
var e = 65;
typeof( e );//錯(cuò)誤
type( 目標(biāo) ) 可以獲取 腳本里的 表 數(shù)組 變量 方法 等的東西的類(lèi)型,對(duì)于 c# 的東西也能獲取,但只能知道c#的東西是 c#類(lèi)的
例如腳本里寫(xiě)
//獲取腳本的
var t1 = [];
var t2 = {};
var t3 = function(){};
type( t1 );//是5
type( t2 );//是6
type( t3 );//是4
//可以獲取c#的
type( new GameObject() );//是8
這是返回的數(shù)字 代表的意思
0 意思是 Null, //Null
1 意思是 Boolean, //布爾
2 意思是 Number, //數(shù)字
3 意思是 String, //字符串,函數(shù)
4 意思是 Function, //函數(shù)
5 意思是 Array, //數(shù)組
6 意思是 Table, //MAP
7 意思是 Enum, //枚舉
8 意思是 UserData, //c#的普通類(lèi)
typeof 和 type 不同的是,typeof 能夠獲取 c#的詳細(xì),而type只能給出它是普通類(lèi)
如果不知道一個(gè)變量是什么來(lái)的,可以先type獲取,如果是c#類(lèi),那就再typeof 獲取詳細(xì)
//腳本里:
var 未知 = GameObject();
//現(xiàn)假設(shè)不知道 未知 變量 里是什么來(lái)的
//如果是c#的普通類(lèi)
if( type( 未知 ) == 8 ){
//這會(huì)獲取到想詳細(xì),例如這例子是 GameObject類(lèi)型
if( typeof( 未知 ) == GameObject ){
//...
}
}
轉(zhuǎn)換 變量 的 值類(lèi)型
//腳本里使用:
//將變量轉(zhuǎn)為 特定類(lèi)型值,
var ct;
//可以從數(shù)字格式的字符串獲得數(shù)字,非數(shù)字內(nèi)容雜在里面是會(huì)執(zhí)行失敗的
ct = toint( "15" );
ct = tosbyte( t )
ct = tobyte( t )
ct = toshort( t );
ct = toushort( t );
ct = touint( t );
ct = tolong( t );
ct = toulong( t );
ct = tofloat( t );
ct = tonumber( t );
//ct = toenum( t );
ct = tostring( t );
獲取 變量 的 值類(lèi)型
//腳本里使用:
//注意的問(wèn)題,腳本里的默認(rèn)值不是Int32是double,所以必須轉(zhuǎn)成對(duì)應(yīng)類(lèi)型才能判斷對(duì)的,否則就會(huì)得到false
is_int( toint( 65 ) );//返回true
is_int( 65 );//返回false
//下面也都是一樣的使用方式
is_null( ? )
is_bool( ? )
is_number( 任何的數(shù)值類(lèi)型,例如65.3 )
is_double( ? )
is_long( ? )
is_string( ? )
is_function( ? )
is_array( ? )
is_table( ? )
is_enum( ? )
is_userdata( ? )
更多建議: