예제 #1
0
    public bool FireTouchEvent()
    {
        if (!mIsTouching)
        {
            return(false);
        }

        Actor localPlayer = Game.GetInstance().GetLocalPlayer();

        if (localPlayer != null && localPlayer.IsAttacking() == false)// 在释放技能时不能停止
        {
            localPlayer.Stop();
            localPlayer.MoveCtrl.TryWalkAlongStop();
        }

        if (TaskHelper.ProcessTouchTasksNpc(this) == false)      // 任务npc逻辑
        {
            if (MarryHelper.ProcessTouchMarryNpc(this) == false) // 结婚npc逻辑
            {
                NpcHelper.ProcessNpcFunction(this);
            }
        }

        TargetPathManager.Instance.StopPlayerAndReset(true, false);

        SetSelectEffect(true);
        //TurnToOriginalDir();

        bool isTurnToLocalPlayer = true;

        if (mDefine.Function == NpcDefine.EFunction.INTERACTION)
        {
            if (mDefine.FunctionParams[2] == "0")
            {
                isTurnToLocalPlayer = false;
            }
        }
        if (isTurnToLocalPlayer == true)
        {
            TurnToLocalPlayer();
        }

        return(true);
    }
    public void Awake()
    {
        if (SceneHelp.Instance.IsInWeddingInstance == true) // 婚宴副本外面使用第二套模型
        {
            mModelIds = GameConstHelper.GetUintList("GAME_WEDDING_DRAMA_TIMELINE_COUPLE_MODEL_IDS");
        }
        else
        {
            mModelIds = GameConstHelper.GetUintList("GAME_WEDDING_DRAMA_TIMELINE_COUPLE_MODEL_IDS_2");
        }

        PlayableDirector playableDirector = gameObject.GetComponent <PlayableDirector>();

        if (playableDirector != null)
        {
            uint rid1 = 0;
            uint rid2 = 0;
            MarryHelper.GetWeddingCoupleJobs(out rid1, out rid2);

            TimelineAsset asset = playableDirector.playableAsset as TimelineAsset;
            foreach (TrackAsset track in asset.GetOutputTracks())
            {
                GroupTrack group = track.GetGroup();
                if (group != null)
                {
                    if (group.name.Equals("Mate") == true)
                    {
                        foreach (PlayableBinding output in track.outputs)
                        {
                            if (output.sourceObject != null)
                            {
                                Object binding = playableDirector.GetGenericBinding(output.sourceObject);
                                if (binding == null)
                                {
                                    GameDebug.LogError("Player wedding chapel timeline " + this.name + " error!!! " + output.sourceObject.name + " 's binding object is null!!!");
                                    continue;
                                }
                                GameObject bindingObj = binding as GameObject;

                                // 根据职业显示主角的模型
                                if (bindingObj != null)
                                {
                                    if (bindingObj.name.Equals("Mate_R") == true)
                                    {
                                        if (rid1 > 0)
                                        {
                                            bindingObj.SetActive(false);
                                            ReplaceActorModel(playableDirector, output, bindingObj, rid1, bindingObj.name);
                                        }
                                    }
                                    if (bindingObj.name.Equals("Mate_L") == true)
                                    {
                                        if (rid2 > 0)
                                        {
                                            bindingObj.SetActive(false);
                                            ReplaceActorModel(playableDirector, output, bindingObj, rid2, bindingObj.name);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        // 跳过按钮
        Transform skipButtonTrans = gameObject.transform.Find("UI/Canvas/SkipButton");

        if (skipButtonTrans != null)
        {
            Button skipButton = skipButtonTrans.GetComponent <Button>();
            if (skipButton != null)
            {
                skipButton.onClick.RemoveAllListeners();
                skipButton.onClick.AddListener(() =>
                {
                    TimelineManager.Instance.StopAll();
                });
            }
        }

        GameInput.Instance.EnableInput(true, true);
    }