예제 #1
0
    public void AddEvent(InterractionEvent _event)
    {
        EventCasterManager em = new EventCasterManager();

        em.interractionEvent = _event;
        em.active            = true;
        overlapEcastms.Add(em);
    }
예제 #2
0
    private void Start()
    {
        boneFireEvent = GetComponentInChildren <EventCasterManager>();

        if (lit)
        {
            Fire();
            boneFireEvent.interractionEvent = InterractionEvent.BornFireSit;
        }
    }
예제 #3
0
 public void DoAction()
 {
     if (interactionManager.overlapEcastms.Count != 0)
     {
         EventCasterManager thisEvenCastManger = interactionManager.overlapEcastms[0];
         if (thisEvenCastManger.active == true && directorManager.JudgeStateIsPlaying() == false)
         {
             //I should play corresponding(eventName) timeline here.
             if (thisEvenCastManger.eventName == "frontStab")
             {
                 transform.position = thisEvenCastManger.actorManager.transform.position + thisEvenCastManger.actorManager.transform.TransformVector(thisEvenCastManger.offset);
                 actorController.model.transform.LookAt(thisEvenCastManger.actorManager.transform, Vector3.up);
                 directorManager.PlayTimeline("frontStab", this, thisEvenCastManger.actorManager);
             }
             else if (thisEvenCastManger.eventName == "openBox")
             {
                 if (BattleManager.CheckAngleExecutor(actorController.model, thisEvenCastManger.actorManager.gameObject, 45))
                 {
                     transform.position = thisEvenCastManger.actorManager.transform.position + thisEvenCastManger.actorManager.transform.TransformVector(thisEvenCastManger.offset);
                     actorController.model.transform.LookAt(thisEvenCastManger.actorManager.transform, Vector3.up);
                     thisEvenCastManger.active = false;
                     directorManager.PlayTimeline("openBox", this, thisEvenCastManger.actorManager);
                 }
             }
             else if (thisEvenCastManger.eventName == "leverUp")
             {
                 if (BattleManager.CheckAngleExecutor(actorController.model, thisEvenCastManger.actorManager.gameObject, 45))
                 {
                     transform.position = thisEvenCastManger.actorManager.transform.position + thisEvenCastManger.actorManager.transform.TransformVector(thisEvenCastManger.offset);
                     actorController.model.transform.LookAt(thisEvenCastManger.actorManager.transform, Vector3.up);
                     //   thisEvenCastManger.active = false;
                     directorManager.PlayTimeline("leverUp", this, thisEvenCastManger.actorManager);
                 }
             }
         }
     }
 }
예제 #4
0
    public void DoAction()
    {
        EventCasterManager ecm = GetFirstContactEventCaster();

        if (overlapEcastms.Count > 0)
        {
            if (!ecm.active)
            {
                return;
            }
            //if(!BattleManager.CheckAnglePlayer(ac.model,im.overlapEcastms[0].am.gameObject,30.0f)) return;
            //im.overlapEcastms[0].active = false;
            if (ecm.interractionEvent == InterractionEvent.Pickup)
            {
                PickUpItem();
                return;
            }

            //修正位置、朝向

            if (ecm.offset != Vector3.zero)
            {
                am.ToggleLock(true);
                transform.position = overlapEcastms[0].am.transform.position +
                                     overlapEcastms[0].am.transform.TransformVector(overlapEcastms[0].offset);
            }
            am.ac.model.transform.LookAt(ecm.am.transform.position, Vector3.up);

            am.ac.enableTurnDirection = false;
            if (ecm.interractionEvent == InterractionEvent.FrontStab)
            {
                am.ac.model.SendMessage("WeaponDisable");
                overlapEcastms[0].am.ac.model.SendMessage("WeaponDisable");
                am.dm.PlayTimeLine("frontStab", am, ecm.am);
            }
            else if (ecm.interractionEvent == InterractionEvent.Openbox)
            {
                am.wm.SetAllWeaponOnUseVisiable(false);
                am.dm.PlayTimeLine("openBox", am, ecm.am);
            }
            else if (ecm.interractionEvent == InterractionEvent.PullLevel)
            {
                am.dm.PlayTimeLine("leverUp", am, ecm.am);
            }
            else if (ecm.interractionEvent == InterractionEvent.Pickup)
            {
                PickUpItem();
            }
            else if (ecm.interractionEvent == InterractionEvent.BornFireLit)
            {
                //玩家播放点火动画,特定时间点播放声效.
                am.ac.LitFire();
                //篝火燃起来
                BoneFire boneFire = ecm.GetComponentInParent <BoneFire>();
                boneFire.Fire();
                boneFire.FireBurst();
                //保存篝火信息
            }
            else if (ecm.interractionEvent == InterractionEvent.BornFireSit)
            {
                am.ac.SitFire();
                am.wm.SetAllWeaponOnUseVisiable(false);
                am.ActorUIManager.ShowFirePanel();
            }
        }
    }
예제 #5
0
 private void Start()
 {
     anim = GetComponentInChildren <Animator>();
     em   = GetComponentInChildren <EventCasterManager>();
 }