Exemple #1
0
    static InputDirType _GetInputDirType(string strType)
    {
        InputDirType dirType = InputDirType.eBasket;

        if (strType == "basket")
        {
            dirType = InputDirType.eBasket;
        }
        else if (strType == "world")
        {
            dirType = InputDirType.eJoyStick;
        }

        return(dirType);
    }
Exemple #2
0
    public EDirection GetMoveDirection(InputDirType type)
    {
        if (!m_enable)
        {
            return(EDirection.eNone);
        }

        if (m_worldMoveDir == IM.Vector3.zero)
        {
            return(EDirection.eNone);
        }

        IM.Vector3 vHForward = IM.Vector3.zero;
        if (type == InputDirType.ePlayer)
        {
            vHForward = m_player.forward;
        }
        else if (type == InputDirType.eJoyStick)
        {
            vHForward = IM.Vector3.forward;
        }
        else if (type == InputDirType.eBasket)
        {
            UBasket basket = m_match.mCurScene.mBasket;
            if (basket == null)
            {
                vHForward = IM.Vector3.forward;
            }
            else
            {
                IM.Vector3 dirToBasket = basket.m_vShootTarget - m_player.position;
                dirToBasket.y = IM.Number.zero;
                vHForward     = dirToBasket.normalized;
            }
        }
        vHForward.y = IM.Number.zero;

        IM.Vector3 dir = m_worldMoveDir;
        if (IM.Vector3.Angle(vHForward, dir) > new IM.Number(135))
        {
            return(EDirection.eBack);
        }
        else if (IM.Vector3.Angle(vHForward, dir) < new IM.Number(45))
        {
            return(EDirection.eForward);
        }

        IM.Number fCW = IM.Vector3.Cross(vHForward, dir).y;
        if (IM.Math.Abs(fCW) < new IM.Number(0, 001))
        {
            return(EDirection.eNone);
        }
        if (fCW < IM.Number.zero)
        {
            return(EDirection.eLeft);
        }
        else if (fCW > IM.Number.zero)
        {
            return(EDirection.eRight);
        }

        return(EDirection.eNone);
    }