Example #1
0
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit = new RaycastHit();
            if (Physics.Raycast(ray, out hit, Mathf.Infinity, 1 << 8))
            {
                GameObject obj = hit.collider.gameObject;
                switch (step)
                {
                case Step.SERECT:
                    select_pieces = obj.GetComponent <SellDate>().on_pise;
                    if (select_pieces != null)
                    {
                        if (select_pieces.GetComponent <piece>().team_number == control_team)
                        {
                            setUiStatus(select_pieces.GetComponent <piece>());
                            select_pieces.GetComponent <piece>().OnMoveArea();
                            step++;
                        }
                    }
                    break;

                case Step.MOVE:
                    if (obj.GetComponent <SellDate>().is_movable)
                    {
                        moveSell = obj.GetComponent <SellDate>().sell;
                        select_pieces.GetComponent <piece>().OnAttackArea(moveSell);

                        step++;
                    }
                    else
                    {
                        step = 0;
                    }
                    board.allMovableOff();
                    break;

                case Step.ATACK:

                    if (obj.GetComponent <SellDate>().is_attack)
                    {
                        if (obj.GetComponent <SellDate>().on_pise != null)
                        {
                            //違うチームだったら
                            if (obj.GetComponent <SellDate>().on_pise.GetComponent <piece>().team_number !=
                                select_pieces.GetComponent <piece>().team_number)
                            {
                                obj.GetComponent <SellDate>().on_pise.GetComponent <piece>().damage(
                                    select_pieces.GetComponent <piece>().attack_power
                                    );
                            }
                        }
                        board.OnPiceMove(select_pieces.GetComponent <piece>().sell, moveSell);
                        select_pieces.GetComponent <piece>().setSell(moveSell);
                        setControlTeam((control_team + 1) % 2);
                    }
                    board.allAttackOff();
                    step = 0;
                    break;
                }
            }
            else
            {
                board.allMovableOff();
                board.allAttackOff();
                select_pieces = null;
                step          = 0;
            }
        }
    }