void FixedUpdate()
        {
            if ((timer += Time.deltaTime) < Timeout)
            {
                return;
            }
            if (!Colliding)
            {
                return;
            }

            //only trigger collision when player has actively moved
            if (InputManager.Instance.HasAction(InputManager.Actions.MoveForwards) ||
                InputManager.Instance.HasAction(InputManager.Actions.MoveBackwards) ||
                InputManager.Instance.HasAction(InputManager.Actions.MoveLeft) ||
                InputManager.Instance.HasAction(InputManager.Actions.MoveRight))   //up/down//jump don't seem to trigger action in daggerfall
            {
                //start action
                thisAction.Receive(GameManager.Instance.PlayerObject, CollisionType);
                timer = 0;
            }

            Colliding     = false;
            CollisionType = DaggerfallAction.TriggerTypes.None;
        }
        public override void OnCharacterCollided(ControllerColliderHit hit, Transform other)
        {
            base.OnCharacterCollided(hit, other);

            if (Colliding)
                return;

            //check if hit point beneath player
            var dir = (hit.point - other.position).normalized;
            if (dir.y < -0.9)
                CollisionType = DaggerfallAction.TriggerTypes.WalkOn;
            else
            {
                if (thisAction.TriggerFlag == DaggerfallConnect.DFBlock.RdbTriggerFlags.Collision01)
                {
                    Vector3 origin = new Vector3(hit.controller.transform.position.x, hit.controller.transform.position.y - hit.controller.height / 2, hit.controller.transform.position.z);
                    Ray ray = new Ray(origin, Vector3.down);
                    RaycastHit hitInfo;

                    //if hit not below controller, see if player standing on this action object w/ raycast & if action flag is Collision01 (walk on)
                    //set trigger type & activate if so - to avoid player being able to push against wall to avoid
                    if (hit.collider.Raycast(ray, out hitInfo, hit.controller.skinWidth))
                        CollisionType = DaggerfallAction.TriggerTypes.WalkOn;
                    else
                        CollisionType = DaggerfallAction.TriggerTypes.WalkInto;
                }
                else
                    CollisionType = DaggerfallAction.TriggerTypes.WalkInto;

            }

            Colliding = true;
        }
        public override void OnCharacterCollided(ControllerColliderHit hit, Transform other)
        {
            base.OnCharacterCollided(hit, other);

            if (Colliding)
            {
                return;
            }

            //check if hit point beneath player
            var dir = (hit.point - other.position).normalized;

            if (dir.y < -0.9)
            {
                CollisionType = DaggerfallAction.TriggerTypes.WalkOn;
            }
            else
            {
                if (thisAction.TriggerFlag == DaggerfallConnect.DFBlock.RdbTriggerFlags.Collision01)
                {
                    Vector3    origin = new Vector3(hit.controller.transform.position.x, hit.controller.transform.position.y - hit.controller.height / 2, hit.controller.transform.position.z);
                    Ray        ray    = new Ray(origin, Vector3.down);
                    RaycastHit hitInfo;

                    //if hit not below controller, see if player standing on this action object w/ raycast & if action flag is Collision01 (walk on)
                    //set trigger type & activate if so - to avoid player being able to push against wall to avoid
                    if (hit.collider.Raycast(ray, out hitInfo, hit.controller.skinWidth))
                    {
                        CollisionType = DaggerfallAction.TriggerTypes.WalkOn;
                    }
                    else
                    {
                        CollisionType = DaggerfallAction.TriggerTypes.WalkInto;
                    }
                }
                else
                {
                    CollisionType = DaggerfallAction.TriggerTypes.WalkInto;
                }
            }

            Colliding = true;
        }
        void FixedUpdate()
        {
            if ((timer += Time.deltaTime) < Timeout)
                return;
            if (!Colliding)
                return;

            //only trigger collision when player has actively moved
            if (InputManager.Instance.HasAction(InputManager.Actions.MoveForwards)
                || InputManager.Instance.HasAction(InputManager.Actions.MoveBackwards)
                || InputManager.Instance.HasAction(InputManager.Actions.MoveLeft)
                || InputManager.Instance.HasAction(InputManager.Actions.MoveRight))//up/down//jump don't seem to trigger action in daggerfall
                {
                    //start action
                    thisAction.Receive(GameManager.Instance.PlayerObject, CollisionType);
                    timer = 0;
                }

            Colliding = false;
            CollisionType = DaggerfallAction.TriggerTypes.None;
        }