Example #1
0
    public static object ChkAnyObject(this ILuaState self, int index, System.Type type)
    {
        object ret = null;

        if (type.IsEnum)
        {
            return(self.ChkEnumValue(index, type));
        }

        if (type.IsSubclassOf(typeof(System.Delegate)))
        {
            // TODO
            return(null);
        }

        switch (type.FullName)
        {
        case "System.Byte": ret = (byte)self.ToInteger(index); break;

        case "System.SByte": ret = (sbyte)self.ToInteger(index); break;

        case "System.Int16": ret = (short)self.ToInteger(index); break;

        case "System.UInt16": ret = (ushort)self.ToInteger(index); break;

        case "System.Int32": ret = self.ToInteger(index); break;

        case "System.UInt32": ret = (uint)self.ToInteger(index); break;

        case "System.Int64": ret = long.Parse(self.ToString(index)); break;

        case "System.UInt64": ret = ulong.Parse(self.ToString(index)); break;

        case "UnityEngine.Vector2": ret = self.ToVector2(index); break;

        case "UnityEngine.Vector3": ret = self.ToVector3(index); break;

        case "UnityEngine.Quaternion": ret = self.ToQuaternion(index); break;

        case "UnityEngine.Color": ret = self.ToColor(index); break;

        case "TinyJSON.Variant": ret = self.ToJsonObj(index); break;

        default: ret = self.ChkUserData(index, type); break;
        }
        return(ret);
    }