private void UF_DispatchSelectedChange() { if (!string.IsNullOrEmpty(eValueChange) && Application.isPlaying) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_OPERA, eValueChange, m_SelectIndex, eParam, this); } }
public void OnPointerUp(PointerEventData eventData) { if (!this.enabled) { return; } if (DeviceInput.UF_Up(0)) { //Vector2 anchoredPosition = this.rectTransform.anchoredPosition; if (autoBack) { if (smoothBack <= 0) { this.transform.localPosition = m_SourceLPosition; } else { FrameHandle.UF_AddCoroutine(UF_ISmoothBack(this.transform.localPosition, m_SourceLPosition, smoothBack)); } } m_IsDragging = canDrag && false; //判断Group中的碰撞 if (m_DragGroup != null) { m_DragGroup.UF_UpdateCollision(this, eventData); } if (!string.IsNullOrEmpty(ePressUp)) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_OPERA, ePressUp, eParam, this); } } }
private void UF_DrawTagHack() { #if UNITY_EDITOR GUILayout.Label("IP:"); string hack_ip = GUILayout.TextField(UnityEditor.EditorPrefs.GetString("hack_ip", ""), GUILayout.Height(40)); GUILayout.Label("Port:"); string hack_port = GUILayout.TextField(UnityEditor.EditorPrefs.GetString("hack_port", ""), GUILayout.Height(40)); GUILayout.Label("UserID:"); string hack_userid = GUILayout.TextField(UnityEditor.EditorPrefs.GetString("hack_userid", ""), GUILayout.Height(40)); GUILayout.Label("Token:"); string hack_token = GUILayout.TextArea(UnityEditor.EditorPrefs.GetString("hack_token", ""), GUILayout.Height(60)); GUILayout.Label("OpenID:"); string hack_openid = GUILayout.TextArea(UnityEditor.EditorPrefs.GetString("hack_openid", ""), GUILayout.Height(60)); if (GUILayout.Button("Hack Connect", GUILayout.Height(60))) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_LUA, DefineLuaEvent.E_LOGIN_HACK, hack_ip, hack_port, hack_userid, hack_token, hack_openid); } if (GUI.changed) { UnityEditor.EditorPrefs.SetString("hack_ip", hack_ip); UnityEditor.EditorPrefs.SetString("hack_port", hack_port); UnityEditor.EditorPrefs.SetString("hack_userid", hack_userid); UnityEditor.EditorPrefs.SetString("hack_token", hack_token); UnityEditor.EditorPrefs.SetString("hack_openid", hack_openid); } #endif }
public static void UF_OnClick(UILabel label, PointerEventData eventData) { if (s_HyperlinkCacheTable.Count == 0) { return; } int labelID = label.GetInstanceID(); RectTransform rectTransform = label.rectTransform; List <HyperlinkDatas> listHyperlinkDatas = s_HyperlinkCacheTable [labelID]; if (listHyperlinkDatas.Count > 0) { Vector2 point; RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, eventData.position, eventData.pressEventCamera, out point); for (int k = 0; k < listHyperlinkDatas.Count; k++) { Rect[] boxrects = listHyperlinkDatas [k].box; if (boxrects != null) { for (int j = 0; j < boxrects.Length; j++) { if ((boxrects [j].x <point.x && (boxrects [j].x + boxrects [j].width)> point.x) && (boxrects [j].y > point.y && (boxrects [j].y - boxrects [j].height) < point.y)) { //Debug.Log(string.Format("Event: {0} {1}", listHyperlinkDatas[k].href, listHyperlinkDatas[k].value)); MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_OPERA, listHyperlinkDatas [k].href, listHyperlinkDatas [k].value); return; } } } } } }
IEnumerator UF_CoGameStart() { Debugger.UF_Log("GameMain Start Begain"); MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_MAIN_PRE_START); //获取native 配置 yield return(StartCoroutine(GlobalSettings.UF_InitExternInfo())); //初始化全局配置表 yield return(StartCoroutine(GlobalSettings.UF_InitGameConfigs())); //检查版本更新 yield return(StartCoroutine(UpgradeSystem.UF_GetInstance().UF_CheckUpgrade())); //资源系统初始化 yield return(StartCoroutine(AssetSystem.UF_GetInstance().UF_InitAssetSystem())); //LuaFramework 初始化 //yield return StartCoroutine(LuaFramework.UF_GetInstance().UF_InitFramework()); FrameHandle.UF_OnStart(); MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_MAIN_START); Debugger.UF_Log("GameMain Start Over"); MessageSystem.UF_GetInstance().UF_AddListener(DefineEvent.E_START_BATTLE, OnAllReady); MessageSystem.UF_GetInstance().UF_AddListener(DefineEvent.E_CLIENT_MSG, OnClientMsg); MessageSystem.UF_GetInstance().UF_AddListener(DefineEvent.E_StartFrameSync, OnStartFrameSync); MessageSystem.UF_GetInstance().UF_AddListener(DefineEvent.E_StopFrameSync, OnStopFrameSync); com.unity.mgobe.src.Util.RandomUtil.Init(int.Parse(GetTimeStamp())); //AllUI.Instance.Show("PanelLogin"); UIManager.UF_GetInstance().UF_ShowView("UI System", "ui_panellogin", null); yield break; }
private void UF_SendEventMessage(UIDrag source, UIDrag target) { if (!string.IsNullOrEmpty(eDragDown)) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_OPERA, eDragDown, source, target, this); } }
//执行动画事件 private void UF_ExcuteAnimatorClipEvent(string clipName, string clipParam, string eventName, string eventParam) { if (m_Avatar != null) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_ANIMATION_CLIP, m_Avatar, clipName, clipParam, eventName, eventParam); } }
//关闭显示栈上的指定界面位置后的全部界面 public void UF_CloseViewRangeTo(string viewName, bool includeSelf = false) { UIView view = UF_GetView(viewName); if (view != null) { while (m_ViewStack.GetTop() != view && m_ViewStack.Count != 0) { UIView value = m_ViewStack.Pop(); if (!m_ViewStack.CheckInStack(value)) { value.UF_OnClose(); MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_CLOSE, value.name); } } if (includeSelf) { //是否关闭自身 this.UF_CloseView(view); } UF_SetStackDirty(); } else { Debugger.UF_Warn(string.Format("CloseViewRangeTo -> UIView[{0}] not Exist", viewName)); } }
private void TriggerGameObject(GameObject go) { if (go == null || !go.activeInHierarchy) { return; } //send message if (!string.IsNullOrEmpty(eTrigger)) { MessageSystem msg = MessageSystem.UF_GetInstance(); msg.UF_BeginSend(); msg.UF_PushParam(eTrigger); msg.UF_PushParam(this.gameObject); msg.UF_PushParam(go); for (int k = 0; k < eParams.Length; k++) { msg.UF_PushParam(eParams[k]); } msg.UF_EndSend(DefineEvent.E_TRIGGER_CONTROLLER); } if (m_UETrigger != null) { m_UETrigger.Invoke(); } //paly sound if (!string.IsNullOrEmpty(eSound)) { AudioManager.UF_GetInstance().UF_Play(eSound); } }
public void OnPointerDown(PointerEventData eventData) { m_BeginDraw = true; m_NewBegin = true; m_CurPenPressureBuf = 0; if (!string.IsNullOrEmpty(ePressDown)) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_OPERA, ePressDown, eParam, this); } }
public void OnPointerUp(PointerEventData eventData) { m_BeginDraw = false; m_NewBegin = false; if (!string.IsNullOrEmpty(ePressUp)) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_OPERA, ePressUp, eParam, this); } }
//重置时,会把内容界面关闭并回收 public void UF_OnReset() { if (m_Content != null) { string contentName = m_Content.name; m_Content.Release(); m_Content = null; MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_CLOSE, contentName); } }
public void OnPointerUp(PointerEventData eventData) { if (m_IsDrag) { if (!string.IsNullOrEmpty(ePressClick)) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_OPERA, ePressClick, eParam, this); } } m_IsDrag = false; }
//执行动画事件 private void UF_ExcutePerformActionClipEvent(PerformPlayNode perform, ClipEvent clipEvent) { if (clipEvent.rate > 0) { //根据概率设定是否触发 if (Random.Range(1, 10000) > clipEvent.rate) { return; } } MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_PERFORM_ACTION_CLIP, perform.uid, perform.pValue, perform.param, clipEvent.name, clipEvent.param); }
private void UF_OnInputUp() { m_IsDrag = false; if (Mathf.Abs(m_LastClickTime - System.Environment.TickCount) < deadZoomClick) { //send click msg if (!string.IsNullOrEmpty(ePressClick)) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_OPERA, ePressClick, eParam, this); } } }
//触发 internal void UF_OnTriggerEnter(GameObject triTarget) { if (!activeTriggerCollision) { return; } //相同标签间不执行碰撞 if (m_Avatar.tag != triTarget.tag) { //直接发送到Lua中处理 MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_AVATAR_TRIGGER, m_Avatar, triTarget); } }
public override void OnSelect(UnityEngine.EventSystems.BaseEventData eventData) { base.OnSelect(eventData); if (m_SelectIdx != this.value) { m_SelectIdx = this.value; //发送UI事件 if (!string.IsNullOrEmpty(eValueChange)) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_OPERA, eValueChange, eParam, this); } } }
//点击触发 public void OnPointerClick(PointerEventData eventData) { //处理触发的Rich text if (supportRichText) { //超链接需要点击操作 RichText.UF_OnClick(this, eventData); } if (!string.IsNullOrEmpty(ePressClick)) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_OPERA, ePressClick, eParam, this); } }
public static void UF_RemoveCouroutine(int id, bool blockEvent = false) { if (s_CoroutineMap.ContainsKey(id)) { GameMain.Instance.StopCoroutine(s_CoroutineMap[id]); s_CoroutineMap.Remove(id); //携程调用中断 if (!blockEvent) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_COROUTINE_STATE, 2, id); } } }
//清空显示栈 public void UF_ClearAllView() { while (m_ViewStack.Count > 0) { UIView view = m_ViewStack.Pop(); if (!m_ViewStack.CheckInStack(view)) { view.UF_OnClose(); MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_CLOSE, view.name); } } m_ViewStack.Clear(); }
protected override void Set(float input, bool sendCallback) { base.Set(input, sendCallback); if (sendCallback && !string.IsNullOrEmpty(eValueChange)) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_OPERA, eValueChange, eParam, m_Value, this); } if (!Application.isPlaying) { UF_updateTextInfo(this.m_Value); } }
private void UF_SendUIOperaMessage(string eventName, Object target) { MessageSystem msg = MessageSystem.UF_GetInstance(); msg.UF_BeginSend(); msg.UF_PushParam(eventName); for (int k = 0; k < eParams.Length; k++) { msg.UF_PushParam(eParams [k]); } msg.UF_PushParam(target); msg.UF_EndSend(DefineEvent.E_UI_OPERA); }
protected virtual void UF_OnColliderEnter(GameObject hitObject, Vector3 hitPoint) { if (!m_IsPlaying) { return; } //检查是有配置触发弹道,触发弹道继承当前弹道特性,触发消息通过触发弹道碰撞派发 if (!UF_PlayTriggerDip()) { //发送消息到Lua中处理 MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_DIP_COLLISION, this, hitObject.gameObject, hitPoint); } //播放触发特效 UF_PlayTriggerEffect(hitPoint); }
static IEnumerator UF_InvokeCorotine(int id, IEnumerator method, bool blockEvent) { UnityEngine.Coroutine coroutine = GameMain.Instance.StartCoroutine(method); //绑定到Map中 s_CoroutineMap.Add(id, coroutine); yield return(coroutine); //解除绑定 s_CoroutineMap.Remove(id); //发送携程完成消息 if (!blockEvent) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_COROUTINE_STATE, 1, id); } }
public void UF_CloseView(UIView view) { if (view != null) { //在显示栈中去除,去除栈顶中其中一个 m_ViewStack.Remove(view); if (!m_ViewStack.CheckInStack(view)) { //这里设置UI关闭,栈中没有该UI,关闭并回收 view.UF_OnClose(); MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_UI_CLOSE, view.name); } UF_SetStackDirty(); } }
//绘制区域标签 private void UF_DrawAreaTag() { Rect rect = new Rect(0, 0, m_WidthTag * Screen.width - m_WidthSpace, Screen.height); //模拟黑屏 GUI.Box(new Rect(0, 0, Screen.width, Screen.height), ""); GUI.Box(new Rect(0, 0, Screen.width, Screen.height), ""); GUILayout.BeginArea(rect); if (UF_LayoutButton("Close", 80)) { m_ViewBoardTag = ViewBoardTag.NONE; } if (UF_LayoutButton("Output")) { m_ViewBoardTag = ViewBoardTag.OUTPUT; } if (UF_LayoutButton("GM")) { m_ViewBoardTag = ViewBoardTag.NONE; MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_LUA, DefineLuaEvent.E_DEBUG_GM); } if (UF_LayoutButton("Asset")) { m_ViewBoardTag = ViewBoardTag.ASSET; } if (UF_LayoutButton("Record")) { m_ViewBoardTag = ViewBoardTag.RECORD; } if (UF_LayoutButton("Lua")) { m_ViewBoardTag = ViewBoardTag.LUA; } if (UF_LayoutButton("Network")) { m_ViewBoardTag = ViewBoardTag.NETWORK; } if (UF_LayoutButton("System")) { m_ViewBoardTag = ViewBoardTag.SYSTEM; } m_CurDebugView = m_DicDebugView[m_ViewBoardTag]; GUILayout.EndArea(); }
protected virtual void OnTriggerEnter(Collider other) { if (other.gameObject.layer == DefineLayer.HitRaycast) { return; } if (string.IsNullOrEmpty(eTrigger)) { return; } if (!string.IsNullOrEmpty(triggerMask)) { if (!GHelper.UF_CheckStringMask(triggerMask, other.tag)) { return; } } if (m_AttachTarget != null && m_AttachTarget == other.gameObject) { return; } //send message MessageSystem msg = MessageSystem.UF_GetInstance(); msg.UF_BeginSend(); msg.UF_PushParam(eTrigger); msg.UF_PushParam(this.gameObject); msg.UF_PushParam(other.gameObject); for (int k = 0; k < eParams.Length; k++) { msg.UF_PushParam(eParams[k]); } msg.UF_EndSend(DefineEvent.E_TRIGGER_CONTROLLER); if (m_UETrigger != null) { m_UETrigger.Invoke(); } //paly sound AudioManager.UF_GetInstance().UF_Play(eSound); //release? if (autoRelese) { this.Release(); } }
// Update is called once per frame public void UF_OnUpdate() { if (!IsActive) { return; } if (m_IsPress && UsePress) { m_CurrentPressTime += GTime.RunDeltaTime; if (m_CurrentPressTime >= PressInterval) { m_CurrentPressTime = 0; RaycastHit hit; Camera camera = Camera.main; if (camera != null && !IsUIRayCast() && Physics.Raycast(camera.ScreenPointToRay(DeviceInput.UF_PressPosition(0)), out hit, Distance)) { MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_LUA, DefineLuaEvent.E_RAYCAST_HIT, hit); } } if (!DeviceInput.UF_Press(0)) { m_CurrentPressTime = 0; } } else { if (DeviceInput.UF_Down(0)) { RaycastHit hit; Camera camera = Camera.main; if (camera != null && !IsUIRayCast() && Physics.Raycast(camera.ScreenPointToRay(DeviceInput.UF_PressPosition(0)), out hit, Distance)) { if (UsePress) { m_IsPress = true; m_CurrentPressTime = 0; } MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_LUA, DefineLuaEvent.E_RAYCAST_HIT, hit); } } } if (!DeviceInput.UF_Press()) { m_IsPress = false; } }
//碰撞 internal void UF_OnCollisionHit(ControllerColliderHit hit) { if (!activeTriggerCollision) { return; } GameObject hitTarget = hit.gameObject; if (hitTarget.tag == DefineTag.Ground) { return; } if (!UF_CheckCollisionIntervalTime()) { return; } //忽略指定层碰撞 if (hitTarget.tag == DefineTag.Block || hitTarget.tag == DefineTag.Unwalk) { //碰撞不可走区域 MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_AVATAR_BLOCK, m_Avatar, hitTarget, hit.point); return; } //只处理角色间碰撞 if (m_Avatar.tag != hitTarget.tag) { //if (!CheckCollisionIntervalTime()) return; if (GHelper.UF_CheckStringMask(collisionMask, hitTarget.tag)) { //推开角色 if (hit.collider is CharacterController) { var targetController = hit.collider as CharacterController; Vector3 pushForward = MathX.UF_Foward(m_Avatar.position, hit.transform.position); pushForward.y = 0; //Vector3 pushForward = hit.moveDirection; targetController.Move(pushFactor * pushForward.normalized * GTime.RunDeltaTime); } MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_AVATAR_COLLISION, m_Avatar, hitTarget); } } }
void Awake() { try{ DontDestroyOnLoad(this); s_GameMaim = this; s_Root = this.gameObject; FrameHandle.UF_AddHandle(Debugger.UF_GetInstance()); //System FrameHandle.UF_AddHandle(MessageSystem.UF_GetInstance()); FrameHandle.UF_AddHandle(UpgradeSystem.UF_GetInstance()); //FrameHandle.UF_AddHandle(NetworkSystem.UF_GetInstance()); FrameHandle.UF_AddHandle(AssetSystem.UF_GetInstance()); FrameHandle.UF_AddHandle(CEntitySystem.UF_GetInstance()); //FrameHandle.UF_AddHandle(LuaFramework.UF_GetInstance()); //manager FrameHandle.UF_AddHandle(PDataManager.UF_GetInstance()); FrameHandle.UF_AddHandle(ShaderManager.UF_GetInstance()); FrameHandle.UF_AddHandle(AudioManager.UF_GetInstance()); FrameHandle.UF_AddHandle(UIManager.UF_GetInstance()); FrameHandle.UF_AddHandle(FXManager.UF_GetInstance()); FrameHandle.UF_AddHandle(NavigateManager.UF_GetInstance()); FrameHandle.UF_AddHandle(MotionManager.UF_GetInstance()); //FrameHandle.UF_AddHandle(PerformActionManager.UF_GetInstance()); FrameHandle.UF_AddHandle(RaycastManager.UF_GetInstance()); FrameHandle.UF_AddHandle(VoiceManager.UF_GetInstance()); FrameHandle.UF_AddHandle(RenderPreviewManager.UF_GetInstance()); FrameHandle.UF_AddHandle(RefObjectManager.UF_GetInstance()); FrameHandle.UF_AddHandle(CheckPointManager.UF_GetInstance()); FrameHandle.UF_AddHandle(SimulationManager.Instance); //setting GTime.FrameRate = 60; GTime.FixedTimeRate = 0.016f; GTime.RunDeltaTime = 0.016f; Screen.sleepTimeout = SleepTimeout.NeverSleep; VendorSDK.UF_Init(); //VestBinder.Bind(); } catch (System.Exception e) { Debugger.UF_Exception(e); } }