Exemplo n.º 1
0
    void Update()
    {
        if (Input.touchCount > 0 && Input.touches[0].phase == TouchPhase.Began)
        {
            RaycastHit hit;
            if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.GetTouch(0).position), out hit, Mathf.Infinity, layerMask))
            {
                if (hit.collider.CompareTag("Target"))
                {
                    // Appeler la fonction du plaisir
                    GameManager.instance.MakeMove(hit.transform.gameObject.GetComponent <Target>().position);
                }
            }

            TargetFactory.ClearTargets();

            if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.GetTouch(0).position), out hit))
            {
                Vector2[] targetPositions;

                if (GameManager.instance.playerPlaying == GameManager.Player.White)
                {
                    if (hit.collider.CompareTag("WhitePiece"))
                    {
                        // Appeler la fonction du plaisir :
                        targetPositions = rules.PossibleMoves(hit.transform.gameObject.GetComponent <ChessPiece>()).ToArray();
                        TargetFactory.instance.SetTargets(targetPositions);
                        GameManager.instance.currentSelectedPiece = hit.transform.gameObject.GetComponent <ChessPiece>();
                    }
                }
                else if (hit.collider.CompareTag("BlackPiece"))
                {
                    // Appeler la fonction du plaisir :
                    targetPositions = rules.PossibleMoves(hit.transform.gameObject.GetComponent <ChessPiece>()).ToArray();
                    TargetFactory.instance.SetTargets(targetPositions);
                    GameManager.instance.currentSelectedPiece = hit.transform.gameObject.GetComponent <ChessPiece>();
                }
            }
        }


        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;
            if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, Mathf.Infinity, layerMask))
            {
                if (hit.collider.CompareTag("Target"))
                {
                    // Appeler la fonction du plaisir
                    GameManager.instance.MakeMove(hit.transform.gameObject.GetComponent <Target>().position);
                }
            }

            TargetFactory.ClearTargets();

            if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit))
            {
                Vector2[] targetPositions;

                if (GameManager.instance.playerPlaying == GameManager.Player.White)
                {
                    if (hit.collider.CompareTag("WhitePiece"))
                    {
                        // Appeler la fonction du plaisir :
                        targetPositions = rules.PossibleMoves(hit.transform.gameObject.GetComponent <ChessPiece>()).ToArray();
                        TargetFactory.instance.SetTargets(targetPositions);
                        GameManager.instance.currentSelectedPiece = hit.transform.gameObject.GetComponent <ChessPiece>();
                    }
                }
                else if (hit.collider.CompareTag("BlackPiece"))
                {
                    // Appeler la fonction du plaisir :
                    targetPositions = rules.PossibleMoves(hit.transform.gameObject.GetComponent <ChessPiece>()).ToArray();
                    TargetFactory.instance.SetTargets(targetPositions);
                    GameManager.instance.currentSelectedPiece = hit.transform.gameObject.GetComponent <ChessPiece>();
                }
            }
        }
    }