示例#1
0
    private void JudgeClick()
    {
        if (clickUpInfo.col != clickDownInfo.col ||
            clickUpInfo.col == null)
        {
            return;
        }
        if (clickUpInfo.time < clickDownInfo.time ||
            clickUpInfo.time - clickDownInfo.time > 0.3f)
        {
            return;
        }

        if (!Util.Vector3Equal(clickUpInfo.pos, clickDownInfo.pos, 0.15f))
        {
            return;
        }
        if (!Util.Vector3Equal(clickUpInfo.screenPos, clickDownInfo.screenPos, 10f))
        {
            return;
        }
        //防止连点
        if (lastClickInfo.col == clickUpInfo.col &&
            clickUpInfo.time - lastClickInfo.time < 0.3f)
        {
            return;
        }
        lastClickInfo.Init(clickUpInfo);
        JerryEventMgr.DispatchEvent(Enum_Event.Click3DObj.ToString(), new object[] { clickUpInfo });
    }
示例#2
0
    public override void Awake()
    {
        base.Awake();

        space     = GameObject.Find("Space");
        houseNode = new Transform[HOUSE_NODE_CNT];
        for (int i = 0; i < HOUSE_NODE_CNT; i++)
        {
            houseNode[i] = space.transform.FindChild(string.Format("HouseNode{0}", i));
        }
        housePrefab = space.transform.FindChild("HousePrefab");
        housePrefab.gameObject.SetActive(false);

        houses = new House[HOUSE_NODE_CNT];

        m_MapGridUnityLenHalf = 0.5f * m_MapGridUnityLen;

        _click3DCheck = new Click3DCheck();

        MapUtil.Init();

        if (m_DrawGrid)
        {
#if UNITY_EDITOR
            JerryDrawer.Draw <DrawerElementGrid>()
            .SetMinPos(m_LeftSideWallStartPos + new Vector3(0.01f, 0, 0))
            .SetGridSize(Vector2.one * GameApp.Inst.m_MapGridUnityLen)
            .SetSize(SizeXYZ2XY(m_LeftSideWallSize, Enum_Wall.Left))
            .SetPlaneType(DrawerElementGrid.PlaneType.ZY)
            .SetColor(Color.red);

            JerryDrawer.Draw <DrawerElementGrid>()
            .SetMinPos(m_RightSideWallStartPos + new Vector3(-0.01f, 0, 0))
            .SetGridSize(Vector2.one * GameApp.Inst.m_MapGridUnityLen)
            .SetSize(SizeXYZ2XY(m_RightSideWallSize, Enum_Wall.Right))
            .SetPlaneType(DrawerElementGrid.PlaneType.ZY)
            .SetColor(Color.red);

            JerryDrawer.Draw <DrawerElementGrid>()
            .SetMinPos(m_WallStartPos + new Vector3(0, 0, -0.01f))
            .SetGridSize(Vector2.one * GameApp.Inst.m_MapGridUnityLen)
            .SetSize(SizeXYZ2XY(m_WallSize, Enum_Wall.Wall))
            .SetPlaneType(DrawerElementGrid.PlaneType.XY)
            .SetColor(Color.black);

            JerryDrawer.Draw <DrawerElementGrid>()
            .SetMinPos(m_FloorWallStartPos + new Vector3(0, 0.01f, 0))
            .SetGridSize(Vector2.one * GameApp.Inst.m_MapGridUnityLen)
            .SetSize(SizeXYZ2XY(m_FloorWallSize, Enum_Wall.Floor))
            .SetPlaneType(DrawerElementGrid.PlaneType.XZ)
            .SetColor(Color.black);
#endif
        }

        MeshDraw.Inst.InitConfig();

        JerryEventMgr.AddEvent(Enum_Event.Click3DObj.ToString(), EventClick3DObj);

        CreateHouse(0, 0);
    }
示例#3
0
    private void EventClick3DObj(object[] args)
    {
        if (args == null || args.Length != 1)
        {
            return;
        }

        if (MapUtil.m_SelectId == 0 ||
            MapUtil.m_SelectOK)
        {
            return;
        }

        Click3DCheck.RayClickInfo info = (Click3DCheck.RayClickInfo)args[0];
        if (MapUtil.IsWallLayer(info.col.gameObject.layer))
        {
            RayClickPos fp = new RayClickPos();
            fp.pos      = info.pos;
            fp.wallType = MapUtil.WallLayer2WallEnum(info.col.gameObject.layer);

            //JerryDrawer.Draw<DrawerElementCube>()
            //    .SetColor(Color.black)
            //    .SetLife(3f)
            //    .SetPos(fp.pos)
            //    .SetSize(Vector3.one)
            //    .SetWire(false)
            //    .SetSizeFactor(0.2f);

            JerryEventMgr.DispatchEvent(Enum_Event.SetFurn2Pos.ToString(), new object[] { fp });
        }
    }
示例#4
0
    public override void Init()
    {
        base.Init();

        m_Text = this.transform.FindChild("Viewport/Content/Text").GetComponent <Text>();

        JerryEventMgr.AddEvent(Enum_Event.SelectOneLog.ToString(), SelectOneLog);
    }
示例#5
0
    void Awake()
    {
        furnituresParent = this.transform.FindChild("Furnitures");

        JerryEventMgr.AddEvent(Enum_Event.SaveCurHouseData.ToString(), EventSaveCurHouseData);

        _awaked = true;
        TryWork();
    }
示例#6
0
 void OnDestroy()
 {
     JerryEventMgr.RemoveEvent(Enum_Event.SetOneFurn.ToString(), EventSetOneFurn);
     JerryEventMgr.RemoveEvent(Enum_Event.SetFurn2Pos.ToString(), EventSetFurn2Pos);
     JerryEventMgr.RemoveEvent(Enum_Event.CancelSetFurn.ToString(), EventCancelSetFurn);
     JerryEventMgr.RemoveEvent(Enum_Event.SetFurn2Package.ToString(), EventSetFurn2Package);
     JerryEventMgr.RemoveEvent(Enum_Event.Click3DObj.ToString(), EventClick3DObj);
     JerryEventMgr.RemoveEvent(Enum_Event.Click3DDown.ToString(), EventClick3DDown);
 }
示例#7
0
    /// <summary>
    /// 选中
    /// </summary>
    private void SelectSelf(bool isNew = false)
    {
        if (MapUtil.m_SelectId != 0 &&
            !MapUtil.m_SelectOK)
        {
            if (MapUtil.m_SelectNew)
            {
                JerryEventMgr.DispatchEvent(Enum_Event.SetFurn2Package.ToString(), new object[] { MapUtil.m_SelectId });
            }
            else
            {
                JerryEventMgr.DispatchEvent(Enum_Event.CancelSetFurn.ToString(), new object[] { MapUtil.m_SelectId });
            }
        }

        if (isNew)
        {
            RayClickPos fp = MapUtil.GetFirstPos(m_Config.setType);
            //Debug.LogWarning(fp.pos + " x " + fp.wallType + " " + m_Config.setType);
            SelectChange2Wall(Enum_Wall.Wall, fp.wallType, fp.pos);
        }
        else if (m_InitData.m_CurWall != Enum_Wall.None)
        {
            //先浮起来,再记录,保持回退时一致性
            this.transform.position = MapUtil.GetMap(m_InitData.m_CurWall).AdjustFurn2Wall(m_Config.size, true, this.transform.position);

            m_InitData.m_LastPos  = this.transform.position;
            m_InitData.m_LastWall = m_InitData.m_CurWall;

            MapUtil.GetMap(m_InitData.m_CurWall).CleanOne(this.transform.position, m_Config.size);
        }

        //Debug.LogWarning("xxx " + m_InitData.isNew + " " + m_InitData.m_CurWall);

        MapUtil.m_SelectId   = m_Id;
        MapUtil.m_SelectOK   = false;
        MapUtil.m_SelectNew  = isNew;
        MapUtil.m_SelectFurn = this;

        this.gameObject.layer = LayerMask.NameToLayer(Enum_Layer.ActiveFurniture.ToString());
        m_Selected            = true;
        m_InitData.isSeted    = false;

        bool canSet = MapUtil.GetMap(m_InitData.m_CurWall).JudgeSet(this.transform.position, m_Config.size);

        //GridMgr.Inst.ShowGrid(m_Config.setType, m_Config.size.y);
        MeshDraw.Inst.ShowGrid(m_Config.setType, m_Config.size.y);

        SetOutLineVisible(true);
        SetOutLineColor(canSet ? Color.green : Color.red);
        FurnitureShadow.Inst.SetSize(m_Config.size.ToVector3(), m_InitData.m_CurWall);
        FurnitureShadow.Inst.SetVisible(true);
        FurnitureShadow.Inst.SetPosColor(MapUtil.GetMap(m_InitData.m_CurWall).Adjust2Wall(this.transform.position), canSet ? Color.green : Color.red);
        UI_Ctr.Inst.ShowCtr();
    }
示例#8
0
    void Awake()
    {
        m_Text = this.transform.FindChild("Text").GetComponent <Text>();

        //TODO,UGUIEventListener不能滑动
        this.gameObject.GetComponent <Button>().onClick.AddListener(() =>
        {
            JerryEventMgr.DispatchEvent(Enum_Event.SelectOneLog.ToString(), new object[] { curData });
        });
        m_Awaked = true;
        TryFillData();
    }
示例#9
0
    public override void Init()
    {
        base.Init();

        m_Content   = this.transform.FindChild("Viewport/Content");
        m_BtnPrefab = this.transform.FindChild("BtnPrefab");
        m_BtnPrefab.gameObject.SetActive(false);

        AddSysCtrs();

        JerryEventMgr.AddEvent(Enum_Event.AddOneCtr.ToString(), AddOneCtr);
    }
示例#10
0
    /// <summary>
    /// 增加系统配置
    /// </summary>
    private void AddSysCtr()
    {
        m_Ctrs.Add(new CtrConfig()
        {
            m_Name     = "ReceiveMsg",
            m_Callback = (x) =>
            {
                m_ReceiveMsg = !m_ReceiveMsg;
                x.ChangeColor(m_ReceiveMsg ? Color.green : Color.white);
            },
            m_Color = m_ReceiveMsg ? Color.green : Color.white,
        });

        m_Ctrs.Add(new CtrConfig()
        {
            m_Name     = "ToBottom",
            m_Callback = (x) =>
            {
                m_ToBottom = !m_ToBottom;
                x.ChangeColor(m_ToBottom ? Color.green : Color.white);
                if (m_ToBottom)
                {
                    JerryEventMgr.DispatchEvent(Enum_Event.Change2Bottom.ToString());
                }
            },
            m_Color = m_ToBottom ? Color.green : Color.white,
        });

        m_Ctrs.Add(new CtrConfig()
        {
            m_Name     = "MessageReceived",
            m_Callback = (x) =>
            {
                m_UseMessageReceived = !m_UseMessageReceived;
                x.ChangeColor(m_UseMessageReceived ? Color.green : Color.white);
            },
            m_Color = m_UseMessageReceived ? Color.green : Color.white,
        });

        m_Ctrs.Add(new CtrConfig()
        {
            m_Name     = "TraceLev",
            m_Callback = (x) =>
            {
                m_TraceLev = ChangeTraceLev(m_TraceLev);
                x.ChangeColor(GetTraceLevColor(m_TraceLev));
            },
            m_Color = GetTraceLevColor(m_TraceLev),
        });
    }
示例#11
0
    void Awake()
    {
        m_Render = this.GetComponent <Renderer>();
        this.gameObject.layer = LayerMask.NameToLayer(Enum_Layer.Furniture.ToString());

        m_Id       = Util.IDGenerator(m_Id);
        m_InitData = new FurnitureInitData();

        JerryEventMgr.AddEvent(Enum_Event.SetOneFurn.ToString(), EventSetOneFurn);
        JerryEventMgr.AddEvent(Enum_Event.SetFurn2Pos.ToString(), EventSetFurn2Pos);
        JerryEventMgr.AddEvent(Enum_Event.CancelSetFurn.ToString(), EventCancelSetFurn);
        JerryEventMgr.AddEvent(Enum_Event.SetFurn2Package.ToString(), EventSetFurn2Package);
        JerryEventMgr.AddEvent(Enum_Event.Click3DObj.ToString(), EventClick3DObj);
        JerryEventMgr.AddEvent(Enum_Event.Click3DDown.ToString(), EventClick3DDown);

        _awaked = true;
        TryWork();
    }
示例#12
0
    public void Update()
    {
        if (Input.GetMouseButtonDown(0) &&
            !Util.ClickUI())
        {
            clickDownInfo.Init(DoRayClick());
            if (clickDownInfo.col != null)
            {
                JerryEventMgr.DispatchEvent(Enum_Event.Click3DDown.ToString(), new object[] { clickDownInfo });
            }
        }

        if (Input.GetMouseButtonUp(0) &&
            !Util.ClickUI())
        {
            clickUpInfo.Init(DoRayClick());
            JudgeClick();
        }
    }
示例#13
0
    public void AddCtr(CtrConfig config)
    {
        if (m_Active == false)
        {
            return;
        }

        CtrConfig oldConfig = m_Ctrs.Find((x) => x.m_Name.Equals(config.m_Name));

        if (oldConfig != null)
        {
            m_Ctrs.Remove(oldConfig);
        }

        if (config != null)
        {
            m_Ctrs.Add(config);
            JerryEventMgr.DispatchEvent(Enum_Event.AddOneCtr.ToString(), new object[] { config });
        }
    }
示例#14
0
    protected override void Awake()
    {
        base.Awake();

        AddSysCtr();

        m_Log = this.transform.FindChild("Log");

        m_LogPanel = this.transform.FindChild("Log/LogPanel");
        m_LogPanel.gameObject.AddComponent <LogPanel>().Init();

        m_DetailPanel = this.transform.FindChild("Log/DetailPanel");
        m_DetailPanel.gameObject.AddComponent <DetailPanel>().Init();

        m_CtrPanel = this.transform.FindChild("Log/CtrPanel");
        m_CtrPanel.gameObject.AddComponent <CtrPanel>().Init();

        //Application.logMessageReceived += HandleLog;
        Application.logMessageReceivedThreaded += HandleLog;

        JerryEventMgr.AddEvent(Enum_Event.ShowOrHideLog.ToString(), ShowOrHideLog);
    }
示例#15
0
    public override void Awake()
    {
        base.Awake();

        m_Node   = this.transform.FindChild("Node");
        m_Set    = m_Node.FindChild("Set");
        m_SetBkg = m_Set.GetComponent <Image>();
        m_Cancel = m_Node.FindChild("Cancel");
        m_Back   = m_Node.FindChild("Back");

        UGUIEventListener.Get(m_Set.gameObject).onClick += (go) =>
        {
            if (m_CanSet)
            {
                JerryEventMgr.DispatchEvent(Enum_Event.SetOneFurn.ToString(), new object[] { MapUtil.m_SelectId });
            }
            else
            {
                UI_Tip.Inst.ShowTip("重叠");
            }
        };

        UGUIEventListener.Get(m_Cancel.gameObject).onClick += (go) =>
        {
            JerryEventMgr.DispatchEvent(Enum_Event.CancelSetFurn.ToString(), new object[] { MapUtil.m_SelectId });
        };

        UGUIEventListener.Get(m_Back.gameObject).onClick += (go) =>
        {
            JerryEventMgr.DispatchEvent(Enum_Event.SetFurn2Package.ToString(), new object[] { MapUtil.m_SelectId });
        };

        m_CanSet = false;

        HideCtr();
    }
示例#16
0
 void OnDestroy()
 {
     JerryEventMgr.RemoveEvent(Enum_Event.SaveCurHouseData.ToString(), EventSaveCurHouseData);
 }
示例#17
0
 void OnDestroy()
 {
     JerryEventMgr.RemoveEvent(Enum_Event.SelectOneLog.ToString(), SelectOneLog);
 }
示例#18
0
 private void DoClick()
 {
     JerryEventMgr.DispatchEvent(Enum_Event.ShowOrHideLog.ToString());
 }
示例#19
0
    void OnGUI()
    {
        GUILayout.BeginHorizontal();

        GUI.color = m_EditorMode ? Color.green : Color.white;
        if (GUILayout.Button("编辑模式", m_GUIOpt1))
        {
            if (UpDowning)
            {
                return;
            }

            m_EditorMode = !m_EditorMode;

            if (m_EditorMode)
            {
                CameraCtr.Inst.AdjustCamera();
            }

            if (MapUtil.m_SelectId == 0 ||
                MapUtil.m_SelectOK)
            {
                return;
            }

            //Debug.LogWarning(" " + MapUtil.m_SelectId + " " + MapUtil.m_SelectNew + " " + MapUtil.m_SelectOK);

            if (MapUtil.m_SelectNew)
            {
                JerryEventMgr.DispatchEvent(Enum_Event.SetFurn2Package.ToString(), new object[] { MapUtil.m_SelectId });
            }
            else
            {
                JerryEventMgr.DispatchEvent(Enum_Event.CancelSetFurn.ToString(), new object[] { MapUtil.m_SelectId });
            }
        }
        GUI.color = Color.white;

        if (m_EditorMode)
        {
            if (GUILayout.Button("保存方案", m_GUIOpt1))
            {
                JerryEventMgr.DispatchEvent(Enum_Event.SaveCurHouseData.ToString());
            }

            if (GUILayout.Button("随机一个", m_GUIOpt1))
            {
                houses[CurNodeIdx].AddOneFurniture();
            }
        }

        if (!m_EditorMode)
        {
            if (GUILayout.Button(string.Format("上楼({0})", curFloor), m_GUIOpt1))
            {
                if (UpDowning)
                {
                    return;
                }

                ToFloor(curFloor + 1);
            }

            if (GUILayout.Button(string.Format("下楼({0})", curFloor), m_GUIOpt1))
            {
                if (UpDowning)
                {
                    return;
                }

                ToFloor(curFloor - 1);
            }
        }

        GUILayout.EndHorizontal();
    }
示例#20
0
 void OnDestroy()
 {
     JerryEventMgr.RemoveEvent(Enum_Event.Click3DObj.ToString(), EventClick3DObj);
 }
示例#21
0
 public override void Awake()
 {
     base.Awake();
     JerryEventMgr.AddEvent(Enum_Event.Click3DDown.ToString(), EventClickDown);
 }
示例#22
0
    public override void Init()
    {
        base.Init();

        m_LogContent = this.transform.FindChild("Log/Viewport/Content");
        layout       = m_LogContent.gameObject.AddComponent <LogLayout>();

        m_LogPrefab = this.transform.FindChild("Log/LogPrefab");
        m_LogPrefab.gameObject.SetActive(false);
        m_FilterInput = this.transform.FindChild("BaseCtr/InputField").GetComponent <InputField>();
        m_FilterInput.onEndEdit.AddListener((str) =>
        {
            filterStrs = JerryUtil.String2TArray <string>(str, ';');
            RefreshList();
        });
        m_TypeDropdown = this.transform.FindChild("BaseCtr/TypeDropdown").GetComponent <Dropdown>();
        m_TypeDropdown.options.Clear();
        m_TypeDropdown.options.AddRange(new List <Dropdown.OptionData>()
        {
            new Dropdown.OptionData()
            {
                text = Enum_LogType.All.ToString()
            },
            new Dropdown.OptionData()
            {
                text = Enum_LogType.Inf.ToString()
            },
            new Dropdown.OptionData()
            {
                text = Enum_LogType.War.ToString()
            },
            new Dropdown.OptionData()
            {
                text = Enum_LogType.Err.ToString()
            },
        });
        m_TypeDropdown.onValueChanged.AddListener((val) =>
        {
            filterType = (Enum_LogType)val;
            RefreshList();
        });

        m_TagDropdown = this.transform.FindChild("BaseCtr/TagDropdown").GetComponent <Dropdown>();
        m_TagDropdown.options.Clear();
        m_TagDropdown.options.AddRange(new List <Dropdown.OptionData>()
        {
            new Dropdown.OptionData()
            {
                text = Enum_LogTag.All.ToString()
            },
            new Dropdown.OptionData()
            {
                text = Enum_LogTag.Tag0.ToString()
            },
            new Dropdown.OptionData()
            {
                text = Enum_LogTag.Tag1.ToString()
            },
            new Dropdown.OptionData()
            {
                text = Enum_LogTag.Tag2.ToString()
            },
        });
        m_TagDropdown.onValueChanged.AddListener((val) =>
        {
            filterTag = (Enum_LogTag)val;
            RefreshList();
        });

        JerryDebugUGUI.Inst.AddCtr(new CtrConfig()
        {
            m_Name     = "Clear",
            m_Color    = Color.red,
            m_Callback = (x) =>
            {
                CleanAllLog();
            },
        });

        CleanAllLog();
        JerryEventMgr.AddEvent(Enum_Event.AddLog2Screen.ToString(), AddLog2Screen);
        JerryEventMgr.AddEvent(Enum_Event.Change2Bottom.ToString(), EventChange2Bottom);
    }
示例#23
0
 void OnDestroy()
 {
     JerryEventMgr.RemoveEvent(Enum_Event.AddLog2Screen.ToString(), AddLog2Screen);
     JerryEventMgr.RemoveEvent(Enum_Event.Change2Bottom.ToString(), EventChange2Bottom);
 }
示例#24
0
 void OnDestroy()
 {
     JerryEventMgr.RemoveEvent(Enum_Event.AddOneCtr.ToString(), AddOneCtr);
 }
示例#25
0
 private void AddToScreen(LogItem.LogInfo info)
 {
     JerryEventMgr.DispatchEvent(Enum_Event.AddLog2Screen.ToString(), new object[] { info });
 }
示例#26
0
 void OnDestroy()
 {
     JerryEventMgr.RemoveEvent(Enum_Event.Click3DDown.ToString(), EventClickDown);
 }
示例#27
0
 void OnDestroy()
 {
     JerryEventMgr.RemoveEvent(Enum_Event.ShowOrHideLog.ToString(), ShowOrHideLog);
 }