| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- using System.Runtime.InteropServices;
- using ILRuntime.CLR.TypeSystem;
- using ILRuntime.CLR.Method;
- using ILRuntime.Runtime.Enviorment;
- using ILRuntime.Runtime.Intepreter;
- using ILRuntime.Runtime.Stack;
- using ILRuntime.Reflection;
- using ILRuntime.CLR.Utils;
- namespace ILRuntime.Runtime.Generated
- {
- unsafe class UnityEngine_Physics_Binding
- {
- public static void Register(ILRuntime.Runtime.Enviorment.AppDomain app)
- {
- BindingFlags flag = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
- MethodBase method;
- Type[] args;
- Type type = typeof(UnityEngine.Physics);
- args = new Type[]{typeof(UnityEngine.Ray), typeof(UnityEngine.RaycastHit).MakeByRefType(), typeof(System.Single), typeof(System.Int32)};
- method = type.GetMethod("Raycast", flag, null, args, null);
- app.RegisterCLRMethodRedirection(method, Raycast_0);
- }
- static StackObject* Raycast_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
- {
- ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
- StackObject* ptr_of_this_method;
- StackObject* __ret = ILIntepreter.Minus(__esp, 4);
- ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
- System.Int32 @layerMask = ptr_of_this_method->Value;
- ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
- System.Single @maxDistance = *(float*)&ptr_of_this_method->Value;
- ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
- UnityEngine.RaycastHit @hitInfo = (UnityEngine.RaycastHit)typeof(UnityEngine.RaycastHit).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack));
- ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
- UnityEngine.Ray @ray = (UnityEngine.Ray)typeof(UnityEngine.Ray).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
- var result_of_this_method = UnityEngine.Physics.Raycast(@ray, out @hitInfo, @maxDistance, @layerMask);
- ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
- __intp.Free(ptr_of_this_method);
- ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
- __intp.Free(ptr_of_this_method);
- ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
- switch(ptr_of_this_method->ObjectType)
- {
- case ObjectTypes.StackObjectReference:
- {
- var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
- object ___obj = @hitInfo;
- if (___dst->ObjectType >= ObjectTypes.Object)
- {
- if (___obj is CrossBindingAdaptorType)
- ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
- __mStack[___dst->Value] = ___obj;
- }
- else
- {
- ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
- }
- }
- break;
- case ObjectTypes.FieldReference:
- {
- var ___obj = __mStack[ptr_of_this_method->Value];
- if(___obj is ILTypeInstance)
- {
- ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @hitInfo;
- }
- else
- {
- var ___type = __domain.GetType(___obj.GetType()) as CLRType;
- ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @hitInfo);
- }
- }
- break;
- case ObjectTypes.StaticFieldReference:
- {
- var ___type = __domain.GetType(ptr_of_this_method->Value);
- if(___type is ILType)
- {
- ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @hitInfo;
- }
- else
- {
- ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @hitInfo);
- }
- }
- break;
- case ObjectTypes.ArrayReference:
- {
- var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.RaycastHit[];
- instance_of_arrayReference[ptr_of_this_method->ValueLow] = @hitInfo;
- }
- break;
- }
- __intp.Free(ptr_of_this_method);
- ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
- __intp.FreeStackValueType(ptr_of_this_method);
- __intp.Free(ptr_of_this_method);
- __ret->ObjectType = ObjectTypes.Integer;
- __ret->Value = result_of_this_method ? 1 : 0;
- return __ret + 1;
- }
- }
- }
|