示例#1
0
    void CheckClick()
    {
        if(GM.uiManager.isMenu && GM.uiManager.lastTooltip != "VillagerInfo")
            return;
        if(!Input.GetMouseButtonUp(0) && !Input.GetMouseButtonDown(0))
            return;
        if(Input.GetMouseButtonDown(0)){
            wasClick = true;
            prevPos = Input.mousePosition;
            return;
        }
        if(wasClick && Input.GetMouseButtonUp(0)){
            wasClick = false; float leniency = 6f;
            if(Mathf.Clamp(prevPos.x, Input.mousePosition.x - leniency, Input.mousePosition.x + leniency) != prevPos.x){
                return;
            }else if(Mathf.Clamp(prevPos.y, Input.mousePosition.y - leniency, Input.mousePosition.y + leniency) != prevPos.y){
                return;
            }
        }

        if(!UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject()){
            if(GM.uiManager.toolTip){
                GM.uiManager.KillTooltip(true);
                if(GM.aiManager.resetTarget){
                    GM.aiManager.ResetCameraTarget();
                }
                return;
            }
        }else{
            return;
        }
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if(Physics.Raycast(ray, out hit)){
            if(hit.transform.GetComponent<Spot>()){
                lastSpot = hit.transform.GetComponent<Spot>();
                //Debug.Log(hit.collider.gameObject);
                if(!lastSpot.filled){
                    GM.uiManager.QuickBuildTooltip();
                }else{
                    GM.uiManager.StructInfo(lastSpot.GetComponentInChildren<PhysicalStructure>());
                }
            }
            if(hit.transform.parent == GM.aiManager.villagerParent.transform){
                //GM.aiManager.SetCameraTarget(hit.transform);
                VillagerAI tvai = hit.transform.GetComponent<VillagerAI>();
                GM.uiManager.VillagerInfo(tvai.villager);
            }
        }
    }