MAXScript と Dotnet の値の変換
MAXScript は、ネイティブ値から DotNet 値へ、および DotNet 値から MAXScript 値への変換を自動的に行います。
さらに、値の変換は、3ds Max 2010 以降 の専用の関数を使用して明示的に行うこともできます。
自動変換
次の表は、ネイティブの MAXScript の値の型と、3ds Max 9以降 で変換された DotNet 値の型を示したものです。
MAXScript の型
|
DotNet の型
|
Integer, Integer64, IntegerPtr, Float, Double, MSTime
|
Byte, SByte, Decimal, Int16, UInt16, Int32, UInt32, IntPtr, UIntPtr, Int64, UInt64, Single, Double
|
|
|
|
|
次の表は、DotNet の値の型と、変換されたネイティブの MAXScript の値の型を示したものです。
DotNet の型
|
MAXScript の型
|
Byte, SByte, Decimal, Int16, UInt16, Int32, UInt32
|
|
|
|
|
|
|
|
|
|
|
|
|
|
明示的な変換
以下のメソッドは、MAXScript 値を DotNet 値に変換するものです。
3ds Max 2010 以降で使用可能です。
dotNet.ValueToDotNetObject <value> { <dotNetClass> | <dotNetObject> }
最初の引数として渡された MAXScript 値を、2 つ目の引数として指定された型の DotNet オブジェクトに変換し、dotNetObject 値を返します。
このメソッドを使用することにより、MAXScript 配列から簡単に DotNet 配列を作成できます。
例:
|
type = dotNetClass "System.Int32[]"
--> dotNetClass:System.Int32[]
res = dotnet.ValueToDotNetObject #(11,12,23) type
--> dotNetObject:System.Int32[]
res.length
--> 3
res.getvalue 2 --DotNet arrays are zero-based.
--> 23
|