Ejemplo n.º 1
0
    public override bool OnDragging(Ray ray)
    {
        bool flag = base.OnDragging(ray);

        rootGameObject.transform.position = BuildBlockManager.BestMatchPosition(rootGameObject.transform.position);

        CheckTreeAndSkEntity();

        UpdateHeadTips();

        return(flag && !mHasTree);
    }
Ejemplo n.º 2
0
    void Update()
    {
        if (null != mOpBuilding)
        {
            if (Input.GetMouseButtonUp(0))
            {
                TownEditor.Instance.PutBuildingDown();
            }
            else if (Input.GetKeyUp(KeyCode.T))
            {
                TownEditor.Instance.TurnBuilding();
            }
            else if (Input.GetKeyUp(KeyCode.Escape))
            {
                TownEditor.Instance.CancelSelect();
            }
            else if (Input.GetKeyUp(KeyCode.Delete))
            {
                TownEditor.Instance.DeletBuilding();
            }
            else
            {
                if (null == UICamera.hoveredObject)
                {
                    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

                    float nearestDis = 10000f;

                    RaycastHit[] hitInfos = Physics.RaycastAll(ray, 500f, 1 << Pathea.Layer.VFVoxelTerrain);
                    if (hitInfos.Length > 0)
                    {
                        foreach (RaycastHit hit in hitInfos)
                        {
                            if (hit.distance < nearestDis && !hit.transform.name.Contains("B45Chnk"))
                            {
                                nearestDis = hit.distance;
                                TownEditor.Instance.SetOpBuildingPosition(BuildBlockManager.BestMatchPosition(hit.point));
                            }
                        }
                    }
                }
            }
        }
    }