private void GetUIInput(UIInputEvent uiiei) { if (uiiei.startPressed) { StartGame(); } }
// Called when the node enters the scene tree for the first time. public override void _Ready() { UIInputEvent.RegisterListener(GetUIInput); CellConvertEvent.RegisterListener(CellConverted); DeathEvent.RegisterListener(OnDeathEvent); //Load all the needed scenes for the games start LoadScenes(); InstatiateScenes(); }
public void StartPressed() { UIInputEvent uiiei = new UIInputEvent(); uiiei.startPressed = true; uiiei.FireEvent(); PressSound(); ShowHUD(); }
public override void Update(float deltaTime) { UIInputEvent inputEvent = UIInput.GetCursorEvent(); if (inputEvent != null && inputEvent.State != UIInputEvent.eState.Invalid) { _value = inputEvent.Position; } else { _value = new Vector2(0.5f, 0.5f); } }
//-------------------------------------------------------- // 客户端消息 //-------------------------------------------------------- private void OnNpcClicked(CEventBaseArgs args) { if (args == null || args.arg == null) { return; } if (UIInputEvent.TouchedUI() == true) { return; } GameObject npcObject = args.arg as GameObject; if (npcObject == null) { return; } var mono = ActorHelper.GetActorMono(npcObject.gameObject); if (mono == null) { return; } NpcPlayer targetNpc = mono.BindActor as NpcPlayer; if (targetNpc == null) { return; } // 点击npc后已经取消任务的导航了,所以要把导航任务清空 TaskManager.Instance.NavigatingTask = null; //MissionManager.Instance.NotifyMetNpc((uint)targetNpc.NpcData.Id); targetNpc.OnClicked(); }
//-------------------------------------------------------- // 客户端消息 //-------------------------------------------------------- public void OnPlayerControled(CEventBaseArgs data) { if (GameInput.Instance.GetEnableInput() == false || UIInputEvent.TouchedUI()) { return; } NpcManager.Instance.NavigatingNpcId = 0; NpcManager.Instance.TravelBootsJumpNpcId = 0; mCounter++; mTargetPathNodes.Clear(); RunningTargetPathNode = null; if (mPathWalker != null) { mPathWalker.Reset(); } TaskNavigationActive(false); IsNavigating = false; }
/// <summary> /// 响应点击地面的消息 /// </summary> /// <param name="ent"></param> void OnClickCollision(CEventBaseArgs ent) { Actor local_player = Game.Instance.GetLocalPlayer(); if (local_player == null) { return; } if (GameInput.Instance.GetEnableInput() == false || UIInputEvent.TouchedUI()) /* || InstanceManager.Instance.IsAutoFighting == true*/ { return; } Vector3 hitPos = (Vector3)ent.arg; XNavMeshHit nesrestHit; if (XNavMesh.SamplePosition(hitPos, out nesrestHit, 5.0f, LevelManager.GetInstance().AreaExclude)) { hitPos = nesrestHit.position; } StopLocalPlayerWalkCoroutine(); mLocalPlayerWalkCoroutine = SafeCoroutine.CoroutineManager.StartCoroutine(LocalPlayerWalkCoroutine(hitPos)); if (m_ArrowEffectTemp == null) { MainGame.HeartBehavior.StartCoroutine(LoadEffect(m_ClickEffectPath, hitPos)); } //EffectManager.GetInstance().GetEffectEmitter(effect_path).CreateInstance(x => OnEffectResLoad(x, )); else { OnEffectResLoad(m_ArrowEffectTemp, hitPos); } }
void Update() { if (m_UICamera == null) { m_UICamera = xc.ui.ugui.UIMainCtrl.MainCam; return; } Vector3 thumb_localpos = Vector3.zero; Vector2 touch_pos = Vector3.zero; int count = Input.touchCount; if (count == 0) { ResetJoystick(); return; } for (int i = 0; i < count; i++) { Touch touch = Input.GetTouch(i); // 已经有摇杆对应的Touch if (m_LastFingerId != -1 && m_LastFingerId != touch.fingerId) continue; touch_pos = touch.position; if (touch.phase == TouchPhase.Began)// 开始点击 { bool touch_ui = UIInputEvent.TouchedUI(touch.fingerId); // 触碰到ui或者在可触摸范围外 if ((touch_ui || InTouchRange(touch_pos) == false)) continue; // 记录fingerId和触摸的时间 m_LastFingerId = touch.fingerId; m_LastFingerTime = Time.time; // 显示虚拟摇杆 ShowJoystick(touch_pos); // 发送事件 Actor actor = Game.Instance.GetLocalPlayer(); if (actor != null) { ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_PLAYERCONTROLED, null); } break; } else if(touch.phase == TouchPhase.Moved || touch.phase == TouchPhase.Stationary) // 在移动过程中 { // 没有已经开始的Touch if (m_LastFingerId == -1) continue; // 按下一段时间才可设置摇杆Thumb的位置 if (Time.time - m_LastFingerTime >= 0.1f) thumb_localpos = ShowThumb(touch_pos); break; } else if(touch.phase == TouchPhase.Ended || touch.phase == TouchPhase.Canceled) // 移动结束 { // 没有已经开始的Touch if (m_LastFingerId == -1) continue; ResetJoystick(); break; } } // 根据虚拟摇杆的按钮的位置来计算[-1,1]的坐标 m_Position.x = thumb_localpos.x * m_BackImageSizeInv; m_Position.y = thumb_localpos.y * m_BackImageSizeInv; }
/// <summary> /// 更新时检测技能的cd /// </summary> void Update() { if (NetReconnect.Instance.IsReconnect) { return; } // 普通攻击按键,定时自动触发点击消息 if (mIsPressed) { if (GameInput.Instance.GetEnableInput() == false || mHoleOpen == false) { mIsPressed = false; return; } if (UIInputEvent.TouchedUI() == false)// 应用被切出,失去焦点 { mIsPressed = false; StopPressWait(); return; } float t = Time.time; if (t > mNextTime) { OnClick(null); mNextTime = t + DetalTime; } } var localPlayer = Game.Instance.GetLocalPlayer(); if (localPlayer == null)// 角色为空 { return; } // 技能槽未开启 if (SkillHoleManager.Instance.IsHoleOpen(mFitPos) == false || SkillHoleManager.Instance.IsHoleWillOpen(mFitPos)) { OnHoldHide(); return; } // 技能未装配 if (mSkillIdx == 0) { OnSkillNotFit(); return; } // 技能为空 Skill skill = localPlayer.GetSelfSkill(mSkillIdx); if (skill == null) { OnHoldClose(); return; } // 技能正常 OnHoldOpen(); // 设置CD相关的显示 if (!skill.IsInCD())// 技能不在cd中 { SetObjectActive(mCDMask, false); if (mInCD)// 显示cd结束时候的特效 { mInCD = false; if (mCDLevel != null) { SetTextContent(mCDLevel, string.Empty); } if (mCDBlink != null) { SetObjectActive(mCDBlink, false); SetObjectActive(mCDBlink, true); if (mCDBlinkDelayer == null) { mCDBlinkDelayer = mCDBlink.AddComponent <DelayEnableComponent>(); } if (mCDBlinkDelayer != null) { mCDBlinkDelayer.DelayTime = 0.5f; mCDBlinkDelayer.SetEnable = false; mCDBlinkDelayer.Start(); } } } } else// 在cd中 { mInCD = true; SetObjectActive(mCDMask, true); if (mCDMaskImage != null) { CooldownCtrl.CDInstance cd_inst = skill.GetCurrentCD(); if (cd_inst != null) { if (mCDLevel != null) { float level_seconds = cd_inst.GetRemainSeconds(); SetTextContent(mCDLevel, string.Format("{0:N1}", level_seconds)); } mCDMaskImage.fillAmount = cd_inst.GetCDPercent(); } } } }
/// <summary> /// 更新时检测技能的cd /// </summary> public void Update() { if (NetReconnect.Instance.IsReconnect) { return; } // 普通攻击按键,定时自动触发点击消息 if (mIsPressed) { if (GameInput.Instance.GetEnableInput() == false || mHoleOpen == false) { mIsPressed = false; return; } if (UIInputEvent.TouchedUI() == false)// 应用被切出,失去焦点 { mIsPressed = false; StopPressWait(); return; } float t = Time.time; if (t > mNextTime) { OnClick(null); mNextTime = t + DetalTime; } } Actor local_player = Game.GetInstance().GetLocalPlayer(); if (local_player == null)// 角色为空 { return; } //DBInstance.InstanceInfo instanceInfo = InstanceManager.Instance.InstanceInfo; //if (instanceInfo != null && instanceInfo.mWarSubType == GameConst.WAR_SUBTYPE_ARENA) //{ // OnHoldHide(); // return; //} if (CanShowMateButton() == false) { OnHoldHide(); return; } if (SkillHoleManager.Instance.IsHoleOpen(m_FitPos) == false || SkillHoleManager.Instance.IsHoleWillOpen(m_FitPos))// 技能槽还没开启 { OnHoldHide(); return; } if (mSkillIdx == 0) { OnSkillNotFit(); return; } Skill skill = local_player.GetSelfSkill(mSkillIdx); if (skill == null)// 技能为空 { OnHoldClose(); return; } OnHoldOpen(); // 设置CD相关的显示 if (!skill.IsInCD())// 技能不在cd中 { if (mCDMask.activeSelf) { mCDMask.SetActive(false); } if (mInCD)// 显示cd结束时候的特效 { mInCD = false; if (mCDLevel != null) { mCDLevel.text = string.Empty; } if (mCDBlink != null) { mCDBlink.SetActive(false); mCDBlink.SetActive(true); if (mCDBlink_DelayEnableComponent == null) { mCDBlink_DelayEnableComponent = mCDBlink.AddComponent <DelayEnableComponent>(); } if (mCDBlink_DelayEnableComponent != null) { mCDBlink_DelayEnableComponent.DelayTime = 0.5f; mCDBlink_DelayEnableComponent.SetEnable = false; mCDBlink_DelayEnableComponent.Start(); } } } } else// 在cd中 { mInCD = true; if (!mCDMask.activeSelf) { mCDMask.SetActive(true); } if (mCDMaskImage != null) { CooldownCtrl.CDInstance cd_inst = skill.GetCurrentCD(); if (cd_inst != null) { if (mCDLevel != null) { float level_seconds = cd_inst.GetRemainSeconds(); mCDLevel.text = string.Format("{0:N1}", level_seconds); } mCDMaskImage.fillAmount = cd_inst.GetCDPercent(); } } } }
void UpdateRotate() { if (CanRotate) { if (Input.GetMouseButton(0) && mGameObject != null && m_FixedTouchTransform != null && UIInputEvent.TouchedUI(m_FixedTouchTransform.gameObject)) { if (!mStartDrag) { mStartDrag = true; mStartPos = Input.mousePosition; } } else if (mStartDrag) { mStartDrag = false; } if (mStartDrag) { float angle = mStartPos.x - Input.mousePosition.x; angle *= 0.6f; mCacheTrans.transform.Rotate(Vector3.up, angle); mStartPos = Input.mousePosition; } } }