/// <summary> /// 解注册场景事件 /// </summary> /// <param name="evtType"></param> /// <param name="func"></param> public void UnRegisterSceneEvent(SceneEventType evtType, EventHandlerDelegate func) { if (mEventManager == null) { return; } mEventManager.Unregister((int)evtType, func); }
public void Dispatch(string scene, SceneEventType sceneEventType) { SceneEvents sceneEvents; if (_sceneEvents.TryGetValue(scene, out sceneEvents)) { sceneEvents.Dispatch(sceneEventType); } }
public void Remove(SceneEventType sceneEventType, Delegate del) { Binding binding; if (_eventBindings.TryGetValue(sceneEventType, out binding)) { binding.Remove(del); } }
public void Dispatch(SceneEventType sceneEventType) { Binding binding; if (_eventBindings.TryGetValue(sceneEventType, out binding)) { binding.Dispatch(); } }
public List <SceneEvent> GetEventsByType(SceneEventType eventType) { List <SceneEvent> sceneEvents; if (EventDic.TryGetValue(eventType, out sceneEvents)) { return(sceneEvents); } return(null); }
public void OnActionEvent(EventCenterData data) { currEventParamValues = data.data as object[]; currSceneEventType = (SceneEventType)currEventParamValues[0]; if (currSceneEventType == SceneEventType.None) { ClearAcitonEvent(); return; } }
public void Add(SceneEventType sceneEventType, Delegate del) { Binding binding; if (!_eventBindings.TryGetValue(sceneEventType, out binding)) { binding = new Binding(); _eventBindings.Add(sceneEventType, binding); } binding.Add(del); }
public void DoConditionsAndResults(SceneEventType eventType) { List <SceneEvent> sceneEvents = GetEventsByType(eventType); if (sceneEvents != null) { for (int i = 0; i < sceneEvents.Count; i++) { SceneEvent sceneEvent = sceneEvents[i]; if (sceneEvent.times < sceneEvent.totalTimes && DoConditions(sceneEvent.conditions)) { sceneEvent.times++; DoResults(sceneEvent.results); } } } }
internal static void Internal_OnSceneEvent(SceneEventType eventType, Scene scene, ref Guid sceneId) { switch (eventType) { case SceneEventType.OnSceneSaving: OnSceneSaving?.Invoke(scene, sceneId); break; case SceneEventType.OnSceneSaved: OnSceneSaved?.Invoke(scene, sceneId); break; case SceneEventType.OnSceneSaveError: OnSceneSaveError?.Invoke(scene, sceneId); break; case SceneEventType.OnSceneLoading: OnSceneLoading?.Invoke(scene, sceneId); break; case SceneEventType.OnSceneLoaded: OnSceneLoaded?.Invoke(scene, sceneId); break; case SceneEventType.OnSceneLoadError: OnSceneLoadError?.Invoke(scene, sceneId); break; case SceneEventType.OnSceneUnloading: OnSceneUnloading?.Invoke(scene, sceneId); break; case SceneEventType.OnSceneUnloaded: OnSceneUnloaded?.Invoke(scene, sceneId); break; } }
/// <summary> /// 创建新的事件 /// </summary> /// <param name="type">Type.</param> /// <param name="eventId">Event identifier.</param> /// <param name="sceneId">Scene identifier.</param> /// <param name="name">Name.</param> public void CreateNewEvent(SceneEventType type, string eventId, string areaId, string name = "") { //计算区域大地图上的随机坐标点 if (AreaModel.AreaMainScript == null) { return; } SizeData mapSize = JsonManager.GetInstance().GetMapping <SizeData>("AreaSizeDatas", areaId); int x = UnityEngine.Random.Range(1, mapSize.Width - 1); int y = UnityEngine.Random.Range(1, mapSize.Height - 1); string randomEventId; tk2dRuntime.TileMap.TileInfo groundTile; bool canNotAdd = true; //查找到合法的事件点坐标 while (canNotAdd) { randomEventId = areaId + "_" + x.ToString() + "_" + y.ToString(); groundTile = AreaModel.AreaMainScript.Map.GetTileInfoForTileId(AreaModel.AreaMainScript.Map.GetTile(x, y, 0)); if (groundTile == null || //非法坐标 groundTile.stringVal == "obstacle" || //为寻路障碍点 AreaMain.StaticAreaEventsMapping.ContainsKey(randomEventId) || //为静态事件 AreaMain.ActiveAreaEventsMapping.ContainsKey(randomEventId)) //为动态事件 { x = UnityEngine.Random.Range(1, mapSize.Width - 1); y = UnityEngine.Random.Range(1, mapSize.Height - 1); } else { canNotAdd = false; } } db = OpenDb(); db.ExecuteQuery("insert into EventsTable (X, Y, Type, EventId, SceneId, Name, BelongToRoleId) values(" + x + ", " + y + ", " + ((int)type) + ", '" + eventId + "', '" + areaId + "', '" + name + "', '" + currentRoleId + "')"); db.CloseSqlConnection(); }
/// <summary> /// 构造方法 /// </summary> /// <param name="t_SceneEventType">场景事件类型</param> public SceneEventAttribute(SceneEventType t_SceneEventType, string t_SceneName = null) { SceneEventTopicName = t_SceneEventType.ToString(); SceneName = t_SceneName ?? string.Empty; }
public SceneEventAttribute(SceneEventType sceneEventType, string scene, int priority = 0) { SceneEventType = sceneEventType; Scene = scene; Priority = priority; }
private void ClearAcitonEvent() { currSceneEventType = SceneEventType.None; }