static InputDirType _GetInputDirType(string strType) { InputDirType dirType = InputDirType.eBasket; if (strType == "basket") { dirType = InputDirType.eBasket; } else if (strType == "world") { dirType = InputDirType.eJoyStick; } return(dirType); }
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); }