예제 #1
0
    private void Awake()
    {
#if UNITY_EDITOR
        if (!AkSoundEngineController.Instance.IsSoundEngineLoaded || AkUtilities.IsMigrating)
        {
            return;
        }

        if (!UnityEditor.EditorApplication.isPlaying)
        {
            UnityEditor.EditorApplication.update += CheckStaticStatus;
        }
#endif

        // If the object was marked as static, don't update its position to save cycles.
        if (!isStaticObject)
        {
            m_posData = new AkGameObjPositionData();
        }

        // Cache the bounds to avoid calls to GetComponent()
        m_Collider = GetComponent <UnityEngine.Collider>();

        //Register a Game Object in the sound engine, with its name.
        if (Register() == AKRESULT.AK_Success)
        {
            SetPosition();

            if (isEnvironmentAware)
            {
                m_envData = new AkGameObjEnvironmentData();

                if (m_Collider)
                {
                    m_envData.AddAkEnvironment(m_Collider, m_Collider);
                }

                m_envData.UpdateAuxSend(gameObject, transform.position);
            }

            m_listeners.Init(this);
        }
    }
예제 #2
0
    private void Awake()
    {
#if UNITY_EDITOR
        if (!AkSoundEngineController.Instance.IsSoundEngineLoaded || AkUtilities.IsMigrating)
        {
            return;
        }

        if (!UnityEditor.EditorApplication.isPlaying)
        {
            UnityEditor.EditorApplication.update += CheckStaticStatus;
        }
#endif

        // If the object was marked as static, don't update its position to save cycles.
        if (!isStaticObject)
        {
            m_posData = new AkGameObjPositionData();
        }

        // Cache the bounds to avoid calls to GetComponent()
        m_Collider = GetComponent <UnityEngine.Collider>();

        //Register a Game Object in the sound engine, with its name.
        var res = AkSoundEngine.RegisterGameObj(gameObject, gameObject.name);
        if (res == AKRESULT.AK_Success)
        {
            // Get position with offset or custom position and orientation.
            //Set the original position
            AkSoundEngine.SetObjectPosition(gameObject, GetPosition(), GetForward(), GetUpward());

            if (isEnvironmentAware && m_Collider)
            {
                m_envData = new AkGameObjEnvironmentData();
                //Check if this object is also an environment.
                m_envData.AddAkEnvironment(m_Collider, m_Collider);

                m_envData.UpdateAuxSend(gameObject, transform.position);
            }

            m_listeners.Init(gameObject);
        }
    }
예제 #3
0
 /// <inheritdoc />
 public virtual CollisionLayer DetermineLayerOfCollider(Collider collider)
 {
     if (collider.gameObject.layer == navigationLayer)
     {
         return(CollisionLayer.Navigation);
     }
     else if (collider.gameObject.layer == hologramLayer)
     {
         return(CollisionLayer.Hologram);
     }
     else if (collider.gameObject.layer == uiLayer)
     {
         return(CollisionLayer.UI);
     }
     else
     {
         return(CollisionLayer.Default);
     }
 }
    public void AddAkEnvironment(UnityEngine.Collider environmentCollider, UnityEngine.Collider gameObjectCollider)
    {
        var portal = environmentCollider.GetComponent <AkEnvironmentPortal>();

        if (portal == null)
        {
            var env = environmentCollider.GetComponent <AkEnvironment>();
            TryAddEnvironment(env);
            return;
        }

        activePortals.Add(portal);
        hasActivePortalListChanged = true;

        for (var i = 0; i < AkEnvironmentPortal.MAX_ENVIRONMENTS_PER_PORTAL; i++)
        {
            TryAddEnvironment(portal.environments[i]);
        }
    }
예제 #5
0
        static StackObject *set_collider_1(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            UnityEngine.Collider value = (UnityEngine.Collider) typeof(UnityEngine.Collider).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
            __intp.Free(ptr_of_this_method);
            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
            UnityEngine.WheelHit instance_of_this_method;
            instance_of_this_method = (UnityEngine.WheelHit) typeof(UnityEngine.WheelHit).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));

            instance_of_this_method.collider = value;

            WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);

            return(__ret);
        }
        public void __Gen_Delegate_Imp17(UnityEngine.Collider p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
            RealStatePtr L = luaEnv.rawL;
            int errFunc    = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
            ObjectTranslator translator = luaEnv.translator;
            translator.Push(L, p0);

            PCall(L, 1, 0, errFunc);



            LuaAPI.lua_settop(L, errFunc - 1);

#if THREAD_SAFE || HOTFIX_ENABLE
        }
#endif
        }
예제 #7
0
        public UnityEngine.Collider __Gen_Delegate_Imp5(UnityEngine.Collider p0)
        {
#if THREAD_SAFE || HOTFIX_ENABLE
            lock (luaEnv.luaEnvLock)
            {
#endif
            RealStatePtr L = luaEnv.rawL;
            int errFunc    = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
            ObjectTranslator translator = luaEnv.translator;
            translator.Push(L, p0);

            PCall(L, 1, 1, errFunc);


            UnityEngine.Collider __gen_ret = (UnityEngine.Collider)translator.GetObject(L, errFunc + 1, typeof(UnityEngine.Collider));
            LuaAPI.lua_settop(L, errFunc - 1);
            return(__gen_ret);

#if THREAD_SAFE || HOTFIX_ENABLE
        }
#endif
        }
예제 #8
0
        static int _m_GetCollider(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


                Game.ObjBase __cl_gen_to_be_invoked = (Game.ObjBase)translator.FastGetCSObj(L, 1);



                {
                    UnityEngine.Collider __cl_gen_ret = __cl_gen_to_be_invoked.GetCollider(  );
                    translator.Push(L, __cl_gen_ret);



                    return(1);
                }
            } catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
        }
예제 #9
0
        static int _m_GetCollider(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


                Pathfinding.RecastMeshObj gen_to_be_invoked = (Pathfinding.RecastMeshObj)translator.FastGetCSObj(L, 1);



                {
                    UnityEngine.Collider gen_ret = gen_to_be_invoked.GetCollider(  );
                    translator.Push(L, gen_ret);



                    return(1);
                }
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
        }
        static int _m_ClosestPointOnBounds(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


            UnityEngine.Collider __cl_gen_to_be_invoked = (UnityEngine.Collider)translator.FastGetCSObj(L, 1);


            try {
                {
                    UnityEngine.Vector3 position; translator.Get(L, 2, out position);

                    UnityEngine.Vector3 __cl_gen_ret = __cl_gen_to_be_invoked.ClosestPointOnBounds(position);
                    translator.PushUnityEngineVector3(L, __cl_gen_ret);



                    return(1);
                }
            } catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
        }
예제 #11
0
        private void OnTriggerStay(UnityEngine.Collider other)
        {
            if (!IsActive)
            {
                return;
            }
            if (ValidateCollider(other))
            {
                elapsedTime += UnityEngine.Time.deltaTime;

                var canTrigger = m_triggerOnceInFrame ? !alreadyTriggered : true;

                if (canTrigger)
                {
                    if (elapsedTime >= m_intervalInSeconds)
                    {
                        elapsedTime      = 0;
                        alreadyTriggered = true;
                        m_onTriggerStay.Invoke(other);
                    }
                }
            }
        }
예제 #12
0
        static int _m_ClosestPoint(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


                UnityEngine.Collider gen_to_be_invoked = (UnityEngine.Collider)translator.FastGetCSObj(L, 1);



                {
                    UnityEngine.Vector3 _position; translator.Get(L, 2, out _position);

                    var gen_ret = gen_to_be_invoked.ClosestPoint(_position);
                    translator.PushUnityEngineVector3(L, gen_ret);



                    return(1);
                }
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
        }
예제 #13
0
파일: Groundbox.cs 프로젝트: STFGame/STF
 private void OnTriggerExit(UnityEngine.Collider other)
 {
     OnGround(false);
 }
예제 #14
0
 private bool ValidateCollider(UnityEngine.Collider other)
 {
     return(LayerMaskExtensions.HasLayer(layerMask, other.gameObject.layer) &&
            (string.IsNullOrEmpty(m_tag) || m_tag.GetHashCode() == Constants.UntaggedHash || other.CompareTag(m_tag)));
 }
예제 #15
0
파일: Groundbox.cs 프로젝트: STFGame/STF
 private void OnTriggerEnter(UnityEngine.Collider other)
 {
     OnGround(true);
 }
예제 #16
0
    public static AkRoomAwareObject GetAkRoomAwareObjectFromCollider(UnityEngine.Collider collider)
    {
        AkRoomAwareObject roomAwareObject = null;

        return(ColliderToRoomAwareObjectMap.TryGetValue(collider, out roomAwareObject) ? roomAwareObject : null);
    }
예제 #17
0
 public virtual void OnTriggerStay(UnityEngine.Collider collider)
 {
 }
예제 #18
0
    private ulong GetGeometryID()
    {
        ulong geometryID = AkSurfaceReflector.INVALID_GEOMETRY_ID;

        AkSurfaceReflector surfaceReflector = GetComponent <AkSurfaceReflector>();

        if (surfaceReflector && surfaceReflector.enabled)
        {
            geometryID = surfaceReflector.GetID();
        }
        else
        {
            if (roomCollider == null)
            {
                roomCollider = GetComponent <UnityEngine.Collider>();
            }

            if (roomCollider.GetType() == typeof(UnityEngine.MeshCollider))
            {
                geometryID = GetID();
                UnityEngine.MeshCollider meshCollider = GetComponent <UnityEngine.MeshCollider>();
#if UNITY_EDITOR
                if (previousColliderType == typeof(UnityEngine.MeshCollider) &&
                    previousMeshCollider != null &&
                    previousMeshCollider.sharedMesh == meshCollider.sharedMesh &&
                    previousPosition == transform.position &&
                    previousRotation == transform.rotation &&
                    previousScale == transform.localScale)
                {
                    return(geometryID);
                }
#endif
                AkSurfaceReflector.SetGeometryFromMesh(meshCollider.sharedMesh, transform, geometryID, INVALID_ROOM_ID, false, false, false);
#if UNITY_EDITOR
                previousMeshCollider = meshCollider;
                previousPosition     = transform.position;
                previousRotation     = transform.rotation;
                previousScale        = transform.localScale;
#endif
                previousColliderType = typeof(UnityEngine.MeshCollider);
            }
            else if (roomCollider.GetType() == typeof(UnityEngine.BoxCollider))
            {
                geometryID = GetID();
                UnityEngine.BoxCollider boxCollider = GetComponent <UnityEngine.BoxCollider>();
#if UNITY_EDITOR
                if (previousColliderType == typeof(UnityEngine.BoxCollider) &&
                    previousBoxCollider != null &&
                    previousPosition == roomCollider.bounds.center &&
                    previousRotation == transform.rotation &&
                    previousScale == new UnityEngine.Vector3(transform.localScale.x * boxCollider.size.x,
                                                             transform.localScale.y * boxCollider.size.y,
                                                             transform.localScale.z * boxCollider.size.z))
                {
                    return(geometryID);
                }
#endif
                UnityEngine.GameObject tempGameObject = UnityEngine.GameObject.CreatePrimitive(UnityEngine.PrimitiveType.Cube);
                UnityEngine.Mesh       mesh           = tempGameObject.GetComponent <UnityEngine.MeshFilter>().sharedMesh;

                tempGameObject.transform.position = boxCollider.bounds.center;
                tempGameObject.transform.rotation = transform.rotation;
                UnityEngine.Vector3 roomScale = new UnityEngine.Vector3();
                roomScale.x = transform.localScale.x * boxCollider.size.x;
                roomScale.y = transform.localScale.y * boxCollider.size.y;
                roomScale.z = transform.localScale.z * boxCollider.size.z;
                tempGameObject.transform.localScale = roomScale;

                AkSurfaceReflector.SetGeometryFromMesh(mesh, tempGameObject.transform, geometryID, INVALID_ROOM_ID, false, false, false);
#if UNITY_EDITOR
                previousBoxCollider = boxCollider;
                previousPosition    = tempGameObject.transform.position;
                previousRotation    = tempGameObject.transform.rotation;
                previousScale       = tempGameObject.transform.localScale;
#endif
                previousColliderType = typeof(UnityEngine.BoxCollider);
                UnityEngine.GameObject.Destroy(tempGameObject);
            }
            else if (roomCollider.GetType() == typeof(UnityEngine.CapsuleCollider))
            {
                geometryID = GetID();
                UnityEngine.CapsuleCollider capsuleCollider = GetComponent <UnityEngine.CapsuleCollider>();
#if UNITY_EDITOR
                if (previousColliderType == typeof(UnityEngine.CapsuleCollider) &&
                    previousCapsuleCollider != null &&
                    previousPosition == capsuleCollider.bounds.center &&
                    previousRotation == transform.rotation &&
                    previousScale == GetCapsuleScale(transform.localScale, capsuleCollider.radius, capsuleCollider.height, capsuleCollider.direction))
                {
                    return(geometryID);
                }
#endif
                UnityEngine.GameObject tempGameObject = UnityEngine.GameObject.CreatePrimitive(UnityEngine.PrimitiveType.Cube);
                UnityEngine.Mesh       mesh           = tempGameObject.GetComponent <UnityEngine.MeshFilter>().sharedMesh;

                tempGameObject.transform.position   = capsuleCollider.bounds.center;
                tempGameObject.transform.rotation   = transform.rotation;
                tempGameObject.transform.localScale = GetCapsuleScale(transform.localScale, capsuleCollider.radius, capsuleCollider.height, capsuleCollider.direction);

                AkSurfaceReflector.SetGeometryFromMesh(mesh, tempGameObject.transform, geometryID, INVALID_ROOM_ID, false, false, false);
#if UNITY_EDITOR
                previousCapsuleCollider = capsuleCollider;
                previousPosition        = tempGameObject.transform.position;
                previousRotation        = tempGameObject.transform.rotation;
                previousScale           = tempGameObject.transform.localScale;
#endif
                previousColliderType = typeof(UnityEngine.CapsuleCollider);
                UnityEngine.GameObject.Destroy(tempGameObject);
            }
            else if (roomCollider.GetType() == typeof(UnityEngine.SphereCollider))
            {
                geometryID = GetID();
#if UNITY_EDITOR
                if (previousColliderType == typeof(UnityEngine.SphereCollider) &&
                    previousPosition == roomCollider.bounds.center &&
                    previousScale == roomCollider.bounds.size)
                {
                    return(geometryID);
                }
#endif
                UnityEngine.GameObject tempGameObject = UnityEngine.GameObject.CreatePrimitive(UnityEngine.PrimitiveType.Sphere);
                UnityEngine.Mesh       mesh           = tempGameObject.GetComponent <UnityEngine.MeshFilter>().sharedMesh;

                tempGameObject.transform.position   = roomCollider.bounds.center;
                tempGameObject.transform.localScale = roomCollider.bounds.size;

                AkSurfaceReflector.SetGeometryFromMesh(mesh, tempGameObject.transform, geometryID, INVALID_ROOM_ID, false, false, false);
#if UNITY_EDITOR
                previousColliderType = typeof(UnityEngine.SphereCollider);
                previousPosition     = tempGameObject.transform.position;
                previousScale        = tempGameObject.transform.localScale;
#endif
                previousColliderType = typeof(UnityEngine.SphereCollider);
                UnityEngine.GameObject.Destroy(tempGameObject);
            }
            else
            {
                if (previousColliderType == roomCollider.GetType())
                {
                    return(geometryID);
                }

                UnityEngine.Debug.LogWarning(name + " has an invalid collider for wet transmission. Wet Transmission will be disabled.");
                // in case a geometry was added with the room's ID, remove it
                if (previousColliderType == typeof(UnityEngine.MeshCollider) ||
                    previousColliderType == typeof(UnityEngine.BoxCollider) ||
                    previousColliderType == typeof(UnityEngine.SphereCollider) ||
                    previousColliderType == typeof(UnityEngine.CapsuleCollider))
                {
                    AkSoundEngine.RemoveGeometry(GetID());
                }

                previousColliderType = roomCollider.GetType();
            }
        }

        return(geometryID);
    }
예제 #19
0
 private void OnTriggerExit(UnityEngine.Collider in_other)
 {
     AkRoomAwareManager.ObjectExitedRoom(in_other, this);
 }
예제 #20
0
        public virtual void OnTriggerExit(UnityEngine.Collider collider)
        {
#if (BYTHETALE_STATEMACHINE_VERBOSE)
            UnityEngine.Debug.Log(machine.name + "." + GetType().Name + "::" + System.Reflection.MethodBase.GetCurrentMethod().Name + "()");
#endif // BYTHETALE_STATEMACHINE_VERBOSE
        }
예제 #21
0
 private void OnTriggerEnter(UnityEngine.Collider other)
 {
     OnEvent.Invoke();
 }
 private void OnTriggerEnter(UnityEngine.Collider collision)
 {
     collisionSize++;
     SetStatus(1);
 }
예제 #23
0
 public void Awake()
 {
     m_Collider = GetComponent <UnityEngine.Collider>();
 }
예제 #24
0
 void OnTriggerStay(UnityEngine.Collider collider)
 {
     UnityEngine.Debug.Log("OnTriggerStay");
 }
예제 #25
0
 public virtual void OnTriggerExit(UnityEngine.Collider collider)
 {
     currentState.OnTriggerExit(collider);
 }
        static internal void Lua_System_Action_1_UnityEngine_Collider(LuaFunction ld, UnityEngine.Collider a1)
        {
            IntPtr l     = ld.L;
            int    error = pushTry(l);

            pushValue(l, a1);
            ld.pcall(1, error);
            LuaDLL.lua_settop(l, error - 1);
        }
예제 #27
0
 protected override bool OnEnter(UnityEngine.Collider other)
 {
     _DelayTW.Begin(Delay);
     enabled = true;
     return(true);
 }
예제 #28
0
 public override void OnTriggerExit(UnityEngine.Collider collider)
 {
     currentState.OnTriggerExit(collider);
 }
예제 #29
0
 public static ICollider ToUniject(this UnityEngine.Collider c)
 {
     return(new UnityCollider(c));
 }
예제 #30
0
 void OnTriggerExit(UnityEngine.Collider collider)
 {
     UnityEngine.Debug.Log("OnTriggerExit");
 }