public void AddEvent(InterractionEvent _event) { EventCasterManager em = new EventCasterManager(); em.interractionEvent = _event; em.active = true; overlapEcastms.Add(em); }
private void Start() { boneFireEvent = GetComponentInChildren <EventCasterManager>(); if (lit) { Fire(); boneFireEvent.interractionEvent = InterractionEvent.BornFireSit; } }
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); } } } } }
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(); } } }
private void Start() { anim = GetComponentInChildren <Animator>(); em = GetComponentInChildren <EventCasterManager>(); }