示例#1
0
 private void UpdateDrawing()
 {
     if (_actions.Get(EControllerBtns.Sure).WasPressed)
     {
         GameEventCenter.Send(GameEvent.UI_NextChat);
     }
 }
示例#2
0
 public void OnDestroy()
 {
     _cardList.Clear();
     _currCard?.OnDestroy();
     _currCard = null;
     GameEventCenter.RemoveListener(GameEvent.OnPlayerDead, OnPlayerDead);
 }
示例#3
0
    // Update is called once per frame
    void Update()
    {
        //Debug.Log("XXXX");
        //if (ScoreManager.score == goalScore)
        if (timerStatus)
        {
            timer += Time.deltaTime;
        }


        if (Input.GetKeyDown(KeyCode.X))
        {
            Debug.Log("QQQQQ");
            timeEnd   = Mathf.FloorToInt(Time.time);
            time.text = "花費時間" + (timeEnd - timeStart);
            transform.GetComponent <Canvas>().transform.GetChild(0).gameObject.SetActive(true);
        }


        if (Input.GetKeyDown(KeyCode.W))
        {
            GameEventCenter.DispatchEvent("TimerStart");
            //ScoreManager.gameStatus++;
        }

        if (Input.GetKeyDown(KeyCode.Q))
        {
            //timeEnd = Mathf.FloorToInt(Time.time);
            GameEventCenter.DispatchEvent("TimerStop");
            Debug.Log("timer:" + timeEnd);
        }
    }
示例#4
0
文件: hand.cs 项目: jackhu0329/Lab
    private void Drop()
    {
        if (!mCurrentInteractable)
        {
            return;
        }

        /*mCurrentInteractable.transform.position = originPosition;
        *  mCurrentInteractable.transform.rotation = originRotation;*/
        if (mCurrentInteractable.gameObject.name == "panObject(Clone)")
        {
            GameEventCenter.DispatchEvent("SpawnPan");
        }
        else if (mCurrentInteractable.gameObject.name == "dishObject(Clone)")
        {
            GameEventCenter.DispatchEvent("SpawnDish");
        }
        GameEventCenter.DispatchEvent("MotionSuccess", 0);
        Destroy(mCurrentInteractable.gameObject);
        mContactInteractables = new List <Interactable>();
        //GameEventCenter.DispatchEvent("InitStatus");

        mJoint.connectedBody             = null;
        mCurrentInteractable.mActiveHand = null;
        mCurrentInteractable             = null;
    }
示例#5
0
    private void OnDead()
    {
        if (IsDead)
        {
            return;
        }
        IsDead = true;

        //音效
        Sound.PlayUiAudioOneShot(Deploy.deadSound);

        //特效
        EffectFactory.PlayEffectOnce(Deploy.deadEffect, transform.position);

        //播放shader特效
        StageCamera2D.Instance.PlayDeadEffect(transform.position);

        //销毁僚机
        SupportMgr.Clear();

        //销毁自己
        Destroy(gameObject);

        //发事件
        GameEventCenter.Send(GameEvent.OnPlayerDead);

        //销毁子弹
        BulletExplosion.Create(transform.position, 0.3f);
    }
示例#6
0
 protected override void OnLoadFinish()
 {
     base.OnLoadFinish();
     _bind = GetComponent <UIDrawingChatComponent>();
     GameEventCenter.AddListener(GameEvent.UI_NextChat, OnClickNext);
     DialogMgr.InDrawingDialog = true;
 }
示例#7
0
        void Awake()
        {
            gameStatus = -1;
            transform.GetComponent <Canvas>().transform.GetChild(0).gameObject.SetActive(false);
            //goalScore = GameDataManager.FlowData.GameData.dishCount;
            if (GameDataManager.FlowData.GameData.hand == "right")
            {
                hand.text = "操作手:右手";
            }
            else
            {
                hand.text = "操作手:左手";
            }

            angle.text = "角度:" + GameDataManager.FlowData.GameData.angle;
            dish.text  = "盤數:" + GameDataManager.FlowData.GameData.dishCount;

            quit.onClick.AddListener(QuitButton);
            GameEventCenter.AddEvent("TimerStart", TimerStart);
            GameEventCenter.AddEvent("TimerStop", TimerStop);
            GameEventCenter.AddEvent("GetScore", GetScore);
            GameEventCenter.AddEvent <int>("MotionSuccess", MotionSuccess);

            // timeStart = Mathf.FloorToInt(Time.time);
        }
示例#8
0
    private static IEnumerator LoadImpl(StageDeploy deploy, Action <StageBase> finishAction)
    {
        StageBase gameScene = null;

        yield return(UnloadCurrentScene());

        var sceneName = Path.GetFileNameWithoutExtension(deploy.resource);

#if UNITY_EDITOR
        yield return(SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive));
#else
        yield return(ResourceMgr.LoadScene(deploy.resource, LoadSceneMode.Additive));
#endif
        CurrentSceneName = sceneName;
        SceneManager.SetActiveScene(SceneManager.GetSceneByName(sceneName));
        GameEventCenter.Send(GameEvent.OnSceneChange);

        //挂脚本
        var typeScene   = GetSceneType(deploy.levelClass);
        var sceneObject = new GameObject("GameScene");
        var scene       = sceneObject.AddComponent(typeScene) as StageBase;
        scene.Deploy = deploy;
        yield return(scene.Init());

        finishAction?.Invoke(gameScene);
    }
示例#9
0
 void OnGUI()
 {
     if (GUI.Button(new Rect(100, 100, 200, 200), "button"))
     {
         GameEventCenter.SendEvent(GameEvent.TestEvent);
     }
 }
示例#10
0
 // Start is called before the first frame update
 public override IEnumerator TaskInit()
 {
     spawnPoint = GameObject.Find("SpawnDish");
     dish       = GameEntityManager.Instance.GetCurrentSceneRes <MainSceneRes>().Dish.gameObject;
     GameEventCenter.AddEvent("SpawnDish", SpawnDish);
     yield return(null);
 }
示例#11
0
    private void UpdateMenu()
    {
        if (_actions.Get(EControllerBtns.Up).WasPressed)
        {
            GameEventCenter.Send(GameEvent.UI_Up);
        }

        if (_actions.Get(EControllerBtns.Down).WasPressed)
        {
            GameEventCenter.Send(GameEvent.UI_Down);
        }

        if (_actions.Get(EControllerBtns.Left).WasPressed)
        {
            GameEventCenter.Send(GameEvent.UI_Left);
        }

        if (_actions.Get(EControllerBtns.Right).WasPressed)
        {
            GameEventCenter.Send(GameEvent.UI_Right);
        }

        if (_actions.Get(EControllerBtns.Sure).WasPressed)
        {
            GameEventCenter.Send(GameEvent.UI_Sure);
        }

        if (_actions.Get(EControllerBtns.Cancel).WasPressed)
        {
            GameEventCenter.Send(GameEvent.UI_Back);
        }
    }
示例#12
0
    /// <summary>
    /// 遊戲運行
    /// </summary>
    /// <returns></returns>
    private IEnumerator Process()
    {
        yield return(new WaitForSeconds(5));

        GameEventCenter.DispatchEvent("BuildStart");

        yield return(null);

        BuildingCube = GameObject.FindWithTag("MainCubic");
        while (!IsFinshed)
        {
            // 下面這行是避免CheckIfSame回傳False時進入無限迴圈
            yield return(new WaitUntil(() => TargetCube.transform.childCount != BuildingCube.transform.childCount));

            // 等到玩家拼出同樣數量的小方塊時才判斷
            yield return(new WaitUntil(() => TargetCube.transform.childCount == BuildingCube.transform.childCount));

            IsFinshed = CheckIfSame();
        }
        Debug.Log("win");
        StopCoroutine(timer);
        // 結束後關閉VRTK_ControllerEvents,讓玩家無法再進行操作
        foreach (VRTK_ControllerEvents events in FindObjectsOfType <VRTK_ControllerEvents>())
        {
            events.enabled = false;
        }

        EditUI.ShowResult();
        GameAudioManager.instance.PlaySound(FinishSound);
        yield return(new WaitForSeconds(FinishSound.length));

        SceneManager.LoadScene("MainUI");
    }
示例#13
0
文件: PanTask.cs 项目: jackhu0329/Lab
 // Start is called before the first frame update
 public override IEnumerator TaskInit()
 {
     Debug.Log("spawn pan 12345");
     spawnPoint = GameObject.Find("SpawnPan");
     pan        = GameEntityManager.Instance.GetCurrentSceneRes <MainSceneRes>().Pan.gameObject;
     GameEventCenter.AddEvent("SpawnPan", SpawnPan);
     yield return(null);
 }
示例#14
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Enemy")
     {
         other.gameObject.GetComponent <GameEntityBase>().EntityDestroy();
         GameEventCenter.DispatchEvent("AddScore");
     }
 }
示例#15
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetKeyDown(KeyCode.W))
     {
         Debug.Log("test0");
         GameEventCenter.DispatchEvent("ScoreInit");
     }
 }
示例#16
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetKeyDown(KeyCode.P))
     {
         //this.GetComponent<AudioSource>().clip = get;
         GameEventCenter.DispatchEvent("PlayMusic");
     }
 }
示例#17
0
 // Start is called before the first frame update
 void Start()
 {
     Debug.Log("test data:" + data.hand);
     GameEventCenter.AddEvent("GameInit", GameInit);
     GameEventCenter.AddEvent("ScoreGet", ScoreGet);
     GameEventCenter.AddEvent("InitStatus", InitStatus);
     GameEventCenter.AddEvent("NextStatus", NextStatus);
     GameEventCenter.AddEvent("RedoStatus", RedoStatus);
 }
示例#18
0
    private IEnumerator DoBossDead()
    {
        //对话配置
        var dialogDeploy = DialogMgr.GetBossDialog(StageMgr.MainPlayer.Deploy.id, Deploy.id, false);

        //隐藏血条
        SetHpHudActive(false);

        //bossMark隐藏
        UIBattle.SetBossMarkActive(false);

        yield return(new WaitForSeconds(0.3f));

        //震屏
        if (StageCamera2D.Instance)
        {
            StageCamera2D.Instance.Shake(0.7f, 1.2f);
        }
        if (StageCamera3D.Instance)
        {
            StageCamera3D.Instance.Shake(0.7f, 1.2f);
        }

        Sound.PlayUiAudioOneShot(105);

        //播放shader特效
        StageCamera2D.Instance.PlayDeadEffect(transform.position);

        //隐藏renderer
        MainRenderer.enabled = false;
        if (_bossCircle)
        {
            _bossCircle.SetActiveSafe(false);
        }

        yield return(new WaitForSeconds(0.7f));

        //尝试显示对话
        if (dialogDeploy != null)
        {
            var list = DialogMgr.GetDrawList(dialogDeploy.dialogId);
            UIDrawingChat.Show(list, null,
                               () =>
            {
                GameEventCenter.Send(GameEvent.OnEnemyDie);
            });
        }
        else
        {
            GameEventCenter.Send(GameEvent.OnEnemyDie);
        }

        yield return(new WaitForSeconds(0.3f));

        Destroy(gameObject);
    }
示例#19
0
文件: Audio.cs 项目: jackhu0329/Lab
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Q))
        {
            // this.GetComponent<AudioSource>().clip = clip;
            // this.GetComponent<AudioSource>().Play();

            GameEventCenter.DispatchEvent("BGMFinish");
        }
    }
示例#20
0
 /// <summary>
 /// 初始化
 /// </summary>
 public void GameApplicationInit()
 {
     _isOnApplicationQuit = false;
     GameEventCenter.EventCenterInit();
     _gameManagers = FindObjectsOfType <MonoBehaviour>().OfType <IGameManager>().ToList().OrderBy(m => m.Weight).ToList();
     _gameManagers.ForEach(p =>
     {
         p.ManagerInit();
     });
 }
示例#21
0
 void CameraCorrection(Vector3 v)
 {
     GameEventCenter.DispatchEvent("MotionSuccess", 0);
     Debug.Log("hand height:" + v.y);
     correctionValueY             = v.y - transform.position.y;
     correctionValueX             = v.x - transform.position.x;
     correctionValueZ             = v.z - transform.position.z;
     camaraRig.transform.position = new Vector3(camaraRig.transform.position.x - correctionValueX, camaraRig.transform.position.y - correctionValueY, camaraRig.transform.position.z - correctionValueZ / 2);
     hasCorrection = true;
 }
示例#22
0
        public void OnTriggerEnter(Collider other)
        {
            GameEventCenter.DispatchEvent("MotionSuccess", 3);
            if (other.name == "dishObject(Clone)")
            {
                targetObj = other.gameObject;
            }

            time = 0.0f;
        }
    public static void RegisterWidget(string path, int showCode, int hideCode)
    {
        GameEventCenter gameEventCenter = GameEventCenter.GetInstance();

        gameEventCenter.RegisterEvent(showCode, delegate(GameEvent evt) {
            Show(path);
        });
        gameEventCenter.RegisterEvent(hideCode, delegate(GameEvent evt) {
            Hide(path);
        });
    }
示例#24
0
    protected virtual void OnDead()
    {
        //特效
        EffectFactory.PlayEffectOnce(Deploy.deadEffect, transform.position);

        Sound.PlayUiAudioOneShot(104);

        GameEventCenter.Send(GameEvent.OnEnemyDie);

        Destroy(gameObject);
    }
示例#25
0
文件: hand.cs 项目: jackhu0329/Lab
 private void PickUpStatusControl(Interactable interactable)
 {
     if (interactable.gameObject.name == "panObject(Clone)")
     {
         GameEventCenter.DispatchEvent("MotionSuccess", 1);
     }
     else if (interactable.gameObject.name == "dishObject(Clone)")
     {
         GameEventCenter.DispatchEvent("MotionSuccess", 2);
     }
 }
示例#26
0
 private void OnTriggerExit(Collider other)
 {
     if (other.name == "dishObject(Clone)")
     {
         dish       = null;
         inDishArea = false;
         if (ScoreManager.gameStatus == 3)
         {
             GameEventCenter.DispatchEvent("RedoStatus");
         }
     }
 }
示例#27
0
 private void OnTriggerStay(Collider other)
 {
     if (other.gameObject.name == "CheckArea")
     {
         if (transform.GetChild(1).gameObject.activeSelf)
         {
             GameEventCenter.DispatchEvent("GetScore");
             transform.GetChild(1).gameObject.SetActive(false);
             GameEventCenter.DispatchEvent("MotionSuccess", 5);
             GameEventCenter.DispatchEvent("PlayMusic");
         }
     }
 }
示例#28
0
 private void OnTriggerEnter(Collider other)
 {
     Debug.Log("PAN MANAGER name:" + other);
     if (other.name == "dishObject(Clone)")
     {
         Debug.Log("PAN MANAGER enter!!");
         dish       = other.gameObject;
         inDishArea = true;
         if (ScoreManager.gameStatus == 2)
         {
             GameEventCenter.DispatchEvent("NextStatus");
         }
     }
 }
示例#29
0
文件: hand.cs 项目: jackhu0329/Lab
    // Update is called once per frame
    void Update()
    {
        /*if (!controlEnable)
         *  return;*/
        //  Debug.Log("mPose.transform.eulerAngles:"+ mPose.transform.eulerAngles);
        //  Debug.Log("pan.transform.eulerAngles:" + pan.transform.eulerAngles.x);
        if (!Correction.hasCorrection)
        {
            if (ViveInput.GetPress(HandRole.RightHand, ControllerButton.Menu))
            {
                timer += Time.deltaTime;
                if (timer >= 2.0f)
                {
                    //GameEntityManager.Instance.GetCurrentSceneRes<MainSceneRes>().mainSceneUI.SetUIActive(0, false);
                    //GameEventCenter.DispatchEvent<Vector3>(EventName.EnableCameraRig, this.transform.position);
                    GameEventCenter.DispatchEvent("CameraCorrection", transform.position);
                    Correction.hasCorrection = true;
                }
            }

            if (ViveInput.GetPress(HandRole.LeftHand, ControllerButton.Menu))
            {
                timer += Time.deltaTime;
                if (timer >= 3.0f)
                {
                    //GameEntityManager.Instance.GetCurrentSceneRes<MainSceneRes>().mainSceneUI.SetUIActive(0, false);
                    //GameEventCenter.DispatchEvent<Vector3>(EventName.EnableCameraRig, this.transform.position);
                    Correction.hasCorrection = true;
                }
            }

            return;
        }


        if (mGrabAction.GetStateDown(mPose.inputSource))
        {
            Debug.Log(mPose.inputSource + " down ");
            Pickup();
        }
        if (mGrabAction.GetStateUp(mPose.inputSource))
        {
            Debug.Log(mPose.inputSource + " up ");
            Drop();
            if (ScoreManager.gameStatus == 5)
            {
                GameEventCenter.DispatchEvent("InitStatus");
            }
        }
    }
示例#30
0
    private static void HrefUIEvent(string key)
    {
        int num = int.Parse(key);

        if (num <= 0)
        {
            var errmsg = string.Format("can't find the UI widget by event code {0}", num);
            new Exception(errmsg);
        }
        else
        {
            GameEventCenter.getEventCenter().DispatchEvent(new GameEvent(num));
        }
    }