コード例 #1
0
    protected void Update()
    {
        if (thingToPlace != null)
        {
            if (Input.GetButtonDown("Rotate"))
            {
                var from = thingToPlace.transform.rotation.eulerAngles;
                thingToPlace.transform.rotation =
                    Quaternion.Euler(from.x, from.y + 90, from.z);
            }
            if (Input.GetMouseButtonDown(1))
            {
                Destroy(thingToPlace.gameObject);
                thingToPlace = null;
            }
        }
        if (Input.GetMouseButtonDown(0))
        {
            if (!EventSystem.current.IsPointerOverGameObject())
            {
                var hit = GetMouseHit();
                if (hit != null)
                {
                    var itemAtLocation = Grid.GetItem(hit.Value.point);
                    if (thingToPlace != null && itemAtLocation == null)
                    {
                        if (MoneyManager.Buy(thingToPlace))
                        {
                            if (MoneyManager.CanAfford(thingToPlace))
                            {
                                var thingToReallyPlace = Instantiate(FloorPlacementController.thingToPlace);
                                Grid.PlaceItem(thingToReallyPlace);
                                thingToReallyPlace.OnConnectionChange();
                                onPlaceSound.Play();
                            }
                            else
                            {
                                Destroy(thingToPlace);
                                thingToPlace = null;
                            }
                        }
                        else
                        {
                            Destroy(thingToPlace);
                            thingToPlace = null;
                        }
                    }
                    else if (thingToPlace == null && itemAtLocation != null)
                    {
                        itemAtLocation.OnClick();
                    }
                    if (itemAtLocation != null)
                    {
                        foreach (var item in Grid.items)
                        {
                            if (item != null)
                            {
                                item.OnConnectionChange();
                            }
                        }
                    }
                }
            }
        }

        if (thingToPlace != null)
        {
            thingToPlace.OnConnectionChange();
        }
    }