private void AddPointerEnterTrigger(EventTrigger evTrig, EventTriggerType triggerType) { EventTrigger.TriggerEvent triggerEvent = new EventTrigger.TriggerEvent(); AddEventTrigger(evTrig, d => OnPointerEnter(d, evTrig.gameObject), EventTriggerType.PointerEnter); EventTrigger.Entry entry = new EventTrigger.Entry() { callback = triggerEvent, eventID = triggerType }; evTrig.triggers.Add(entry); }
private void AddEventTrigger(EventTrigger evTrig, UnityAction<BaseEventData> action, EventTriggerType triggerType) { EventTrigger.TriggerEvent triggerEvent = new EventTrigger.TriggerEvent(); triggerEvent.AddListener((eventData) => action(eventData)); EventTrigger.Entry entry = new EventTrigger.Entry() { callback = triggerEvent, eventID = triggerType }; evTrig.triggers.Add(entry); }
private void AddListener(EventTriggerType type, UnityEngine.Events.UnityAction<BaseEventData> call) { EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = type; entry.callback.AddListener(call); this.trigger.triggers.Add(entry); }
private void AddEventTrigger(EventTriggerType type, UnityAction<BaseEventData> action) { EventTrigger.Entry entry; entry = new EventTrigger.Entry(); entry.eventID = type; entry.callback.AddListener(action); trigger.triggers.Add(entry); }
void AddEventTrgger( UnityAction action, EventTriggerType triggerType ) { EventTrigger.TriggerEvent trigger = new EventTrigger.TriggerEvent(); trigger.AddListener( (eventData) => action()); EventTrigger.Entry entry = new EventTrigger.Entry() { callback = trigger, eventID = triggerType }; eventTrigger.triggers.Add(entry); }
// ------------------ Constants and statics // ------------------ Events // ------------------ Serialized fields and properties // ------------------ Non-serialized fields // ------------------ Methods public static void AddEventTrigger(EventTrigger eventTrigger, UnityAction unityAction, EventTriggerType eventTriggerType) { EventTrigger.TriggerEvent triggerEvent = new EventTrigger.TriggerEvent(); triggerEvent.AddListener((eventData) => unityAction()); // ignore event data EventTrigger.Entry entry = new EventTrigger.Entry() { callback = triggerEvent, eventID = eventTriggerType }; eventTrigger.triggers.Add(entry); }
public static void AddListener(this UIBehaviour uiBehaviour, EventTriggerType eventID, UnityAction<BaseEventData> callback) { var entry = new EventTrigger.Entry(); entry.eventID = eventID; entry.callback.AddListener(callback); var eventTriggers = (uiBehaviour.GetComponent<EventTrigger>() ?? uiBehaviour.gameObject.AddComponent<EventTrigger>()).triggers; eventTriggers.Add(entry); }
public static void AddTriggerEvent(GameObject g, EventTriggerType type, UnityAction<BaseEventData> action) { EventTrigger trigger = g.AddComponent<EventTrigger>(); trigger.triggers = new List<EventTrigger.Entry>(); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = type; entry.callback.AddListener(action); trigger.triggers.Add(entry); }
// Use listener that uses the BaseEventData passed to the Trigger private void AddEventTrigger(UnityAction<BaseEventData> action, EventTriggerType triggerType) { // Create a nee TriggerEvent and add a listener EventTrigger.TriggerEvent trigger = new EventTrigger.TriggerEvent(); trigger.AddListener((eventData) => action(eventData)); // capture and pass the event data to the listener // Create and initialise EventTrigger.Entry using the created TriggerEvent EventTrigger.Entry entry = new EventTrigger.Entry() { callback = trigger, eventID = triggerType }; // Add the EventTrigger.Entry to delegates list on the EventTrigger eventTrigger.triggers.Add(entry); }
// Use listener that uses additional argument private void AddEventTrigger(UnityAction<Toggle> action, EventTriggerType triggerType, Toggle toggle) { // Create a nee TriggerEvent and add a listener EventTrigger.TriggerEvent trigger = new EventTrigger.TriggerEvent(); trigger.AddListener((eventData) => action(toggle)); // pass additonal argument to the listener // Create and initialise EventTrigger.Entry using the created TriggerEvent EventTrigger.Entry entry = new EventTrigger.Entry() { callback = trigger, eventID = triggerType }; // Add the EventTrigger.Entry to delegates list on the EventTrigger eventTrigger.delegates.Add(entry); }
public static void AddClickToGameObject(GameObject gameObject, UnityAction action, EventTriggerType triggerType) { var eventTrigger = gameObject.AddComponent<EventTrigger>(); eventTrigger.triggers = new List<EventTrigger.Entry>(); AddEventTrigger(eventTrigger, action, triggerType); }
internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) { if (TriggerType == EventTriggerType.Camera) { if (Direction < 0) { BackgroundManager.TargetBackground = this.PreviousBackground; } else if (Direction > 0) { BackgroundManager.TargetBackground = this.NextBackground; } } }
public static void RemoveAllListeners(this UIBehaviour uiBehaviour, EventTriggerType eventID) { var eventTrigger = uiBehaviour.GetComponent<EventTrigger>(); if (eventTrigger == null) return; eventTrigger.triggers.RemoveAll(listener => listener.eventID == eventID); }
override internal void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) { if (TriggerType == EventTriggerType.Camera) { if (Direction < 0) { World.TargetBackground = this.PreviousBackground; World.TargetBackgroundCountdown = World.TargetBackgroundDefaultCountdown; } else if (Direction > 0) { World.TargetBackground = this.NextBackground; World.TargetBackgroundCountdown = World.TargetBackgroundDefaultCountdown; } } }
internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) { if (TriggerType == EventTriggerType.Camera) { if (Direction < 0) { Game.PreviousFog = this.PreviousFog; Game.NextFog = this.CurrentFog; } else if (Direction > 0) { Game.PreviousFog = this.CurrentFog; Game.NextFog = this.NextFog; } } }
private void Execute(EventTriggerType id, BaseEventData eventData) { if (_triggers == null) return; int index = 0; for (int count = _triggers.Count; index < count; ++index) { t_OnEventTrigger.Entry entry = _triggers[index]; if (entry.EventID == id) entry.ActivateTrigger(eventData); } }
static public void SetEvent(GameObject gameObject, EventTriggerType eventTriggerType, Action<BaseEventData> action) { var trigger = gameObject.GetComponent<EventTrigger>(); if (trigger == null) trigger = gameObject.AddComponent<EventTrigger>(); if(trigger.triggers == null) trigger.triggers = new List<Entry>(); Entry entry = new Entry(); entry.eventID = eventTriggerType; entry.callback = new TriggerEvent(); entry.callback.AddListener(new UnityAction<BaseEventData>(action)); trigger.triggers.Add(entry); }
private void AddEventTrigger(UnityAction<GameObject> action, EventTriggerType triggerType, GameObject go) { EventTrigger eventTrigger = go.GetComponent<EventTrigger>(); if (eventTrigger == null) { eventTrigger = go.AddComponent<EventTrigger>(); eventTrigger.triggers = new System.Collections.Generic.List<EventTrigger.Entry>(); } // Create a nee TriggerEvent and add a listener EventTrigger.TriggerEvent trigger = new EventTrigger.TriggerEvent(); trigger.AddListener((eventData) => action(go)); // capture and pass the event data to the listener // Create and initialise EventTrigger.Entry using the created TriggerEvent EventTrigger.Entry entry = new EventTrigger.Entry() { callback = trigger, eventID = triggerType }; // Add the EventTrigger.Entry to delegates list on the EventTrigger eventTrigger.triggers.Add(entry); }
public static void AddHandler(this UIBehaviour button, EventTriggerType triggerType, params UnityAction<BaseEventData>[] actions) { var eventTrigger = button.gameObject.GetComponent<EventTrigger>(); if (eventTrigger != null) { var click = new EventTrigger.Entry { eventID = triggerType }; foreach (var action in actions) { click.callback.AddListener(action); } eventTrigger.triggers.Add(click); } else { Debug.LogError("EventTrigger on " + button.gameObject.name + " missed!"); } }
public static void AddListener(this EventTrigger eventTrigger, EventTriggerType type, UnityAction<BaseEventData> action) { if (eventTrigger.delegates == null) { eventTrigger.delegates = new List<EventTrigger.Entry>(); } var entry = eventTrigger.delegates.Find(e => e.eventID == type); if (entry == null) { entry = new EventTrigger.Entry(); entry.eventID = type; entry.callback = new EventTrigger.TriggerEvent(); eventTrigger.delegates.Add(entry); } entry.callback.AddListener(action); }
public void SetListener(EventTriggerType eventTriggerType, UnityAction<PointerEventData> callback) { Listeners[eventTriggerType] = callback; var entry = new EventTrigger.Entry(); entry.eventID = eventTriggerType; entry.callback.AddListener( delegate(BaseEventData data) { UnityAction<PointerEventData> action = null; if (Listeners.TryGetValue(eventTriggerType, out action)) if (action != null) action(data as PointerEventData); }); if (delegates == null) delegates = new List<Entry>(); delegates.Add(entry); }
public static EventTrigger.Entry CreateEventEntry(EventTriggerType triggerType, UnityEngine.Events.UnityAction<BaseEventData> cb) { //Create a new entry. This entry will describe the kind of event we're looking for // and how to respond to it EventTrigger.Entry entry = new EventTrigger.Entry(); //This event will respond to a drop event entry.eventID = triggerType; //Create a new trigger to hold our callback methods entry.callback = new EventTrigger.TriggerEvent(); //Create a new UnityAction, it contains our DropEventMethod delegate to respond to events UnityEngine.Events.UnityAction<BaseEventData> callback = cb; //Add our callback to the listeners entry.callback.AddListener(callback); //Add the EventTrigger entry to the event trigger component return entry; }
internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) { if (Train == TrainManager.PlayerTrain & TriggerType == EventTriggerType.FrontCarFrontAxle) { if (this.Message != null) { if (Direction < 0) { if (this.Message.Trains != null && !this.Message.Trains.Contains(new System.IO.DirectoryInfo(Game.RouteInformation.TrainFolder).Name)) { //Our train is NOT in the list of trains which this message triggers for return; } MessageManager.AddMessage(this.Message); } else if (Direction > 0) { this.Message.QueueForRemoval = true; } } } }
public override void Trigger(int Direction, EventTriggerType TriggerType, AbstractTrain Train, AbstractCar Car) { if (TriggerType == EventTriggerType.FrontCarFrontAxle && Train.IsPlayerTrain || TriggerType == EventTriggerType.Camera && currentHost.Application == HostApplication.RouteViewer) { if (this.Message != null) { if (Direction < 0) { if (this.Message.Trains != null && !this.Message.Trains.Contains(new System.IO.DirectoryInfo(Train.TrainFolder).Name)) { //Our train is NOT in the list of trains which this message triggers for return; } currentHost.AddMessage(this.Message); } else if (Direction > 0) { this.Message.QueueForRemoval = true; } } } }
internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) { if (TriggerType == EventTriggerType.TrainFront) { if (Direction < 0) { Train.StationFrontCar = false; if (Train.Handles.Reverser.Actual == TrainManager.ReverserPosition.Forwards && Train.Handles.Power.Driver != 0 && !Game.MinimalisticSimulation && StationIndex == Train.Station) { //Our reverser and power are in F, but we are rolling backwards //Leave the station index alone, and we won't trigger again when we actually move forwards return; } Train.Station = -1; } else if (Direction > 0) { if (Train.Station == StationIndex || Train.NextStopSkipped != TrainManager.StopSkipMode.None) { return; } Train.Station = StationIndex; Train.StationFrontCar = true; Train.StationState = TrainManager.TrainStopState.Pending; Train.LastStation = this.StationIndex; } } else if (TriggerType == EventTriggerType.RearCarRearAxle) { if (Direction < 0) { Train.StationRearCar = false; } else { Train.StationRearCar = true; } } }
/// <summary> /// 确认兑换按钮事件 /// </summary> void OnClickOkExchangeEvent(EventTriggerType eventtype, object button, PointerEventData eventData) { if (eventtype != EventTriggerType.PointerClick || ExchangeItemPanelGameObject == null) { return; } CustomAudio.GetInstance().PlayCustomAudio(1002); //姓名 InputField name = ExchangeItemPanelGameObject.transform.Find("pop_up/Exchange_Gouwuka/InputName").gameObject.GetComponent <InputField>(); if (string.IsNullOrEmpty(name.text)) { CRollTextUI.Instance.AddVerticalRollText(1111); return; } //手机号码 InputField mobilenum = ExchangeItemPanelGameObject.transform.Find("pop_up/Exchange_Gouwuka/InputPhoneNum").gameObject.GetComponent <InputField>(); if (string.IsNullOrEmpty(mobilenum.text) || !GameCommon.CheckPhoneIsAble(mobilenum.text)) { CRollTextUI.Instance.AddVerticalRollText(1112); return; } //收件地址 InputField address = ExchangeItemPanelGameObject.transform.Find("pop_up/Exchange_Gouwuka/InputAdd").gameObject.GetComponent <InputField>(); if (string.IsNullOrEmpty(address.text)) { CRollTextUI.Instance.AddVerticalRollText(1111); return; } CurRecvName = name.text; CurPhoneNum = mobilenum.text; CurRecvAddress = address.text; //打开确认订单信息界面 ShowExchangeItemOrderConfirmPanel(); }
public static void addTriggersListener(GameObject obj, EventTriggerType eventID, UnityAction <BaseEventData> action) { EventTrigger trigger = obj.GetComponent <EventTrigger>(); if (trigger == null) { trigger = obj.AddComponent <EventTrigger>(); } if (trigger.triggers.Count == 0) { trigger.triggers = new List <EventTrigger.Entry>(); } UnityAction <BaseEventData> callback = new UnityAction <BaseEventData>(action); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = eventID; entry.callback.AddListener(callback); trigger.triggers.Clear(); trigger.triggers.Add(entry); }
public void AddHandler <T>(string obj_path, EventTriggerType trigger_type, UnityEngine.Events.UnityAction <BaseEventData> call) where T : Selectable { T obj = GetComponentInChildren <T>(obj_path); if (obj == null) { return; } var trigger = transform.gameObject.GetComponent <EventTrigger>(); if (trigger == null) { trigger = transform.gameObject.AddComponent <EventTrigger>(); } var entry = new EventTrigger.Entry(); entry.eventID = trigger_type; entry.callback.AddListener(call); trigger.triggers.Add(entry); }
public static void RemoveListener( this EventTrigger eventTrigger, EventTriggerType triggerType, UnityAction <BaseEventData> call) { if (eventTrigger == null) { throw new ArgumentNullException(nameof(eventTrigger)); } if (call == null) { throw new ArgumentNullException(nameof(call)); } EventTrigger.Entry entry = eventTrigger.triggers .Find(e => e.eventID == triggerType); if (entry != null) { entry.callback.RemoveListener(call); } }
/// <summary> /// 注册事件 /// </summary> /// <param name="rectTrans"></param> /// <param name="callback"></param> private void RegistorEventTrigger(RectTransform rectTrans, EventTriggerType type, UnityAction <BaseEventData> callback) { EventTrigger eventTrigger = rectTrans.GetComponent <EventTrigger>(); if (!eventTrigger) { eventTrigger = rectTrans.gameObject.AddComponent <EventTrigger>(); } if (eventTrigger.triggers == null) { eventTrigger.triggers = new List <EventTrigger.Entry>(); } EventTrigger.Entry triggerEvent = eventTrigger.triggers.Find(temp => temp.eventID == type); if (triggerEvent == null) { triggerEvent = new EventTrigger.Entry(); triggerEvent.eventID = type; triggerEvent.callback = new EventTrigger.TriggerEvent(); eventTrigger.triggers.Add(triggerEvent); } triggerEvent.callback.AddListener(callback); }
public override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, AbstractCar Car) { if (TriggerType == EventTriggerType.TrainFront) { int s = this.SectionIndex; if (this.ClipToFirstRedSection) { if (s >= 0) { while (true) { if (CurrentRoute.Sections[s].Exists(Train)) { s = this.SectionIndex; break; } int a = CurrentRoute.Sections[s].CurrentAspect; if (a >= 0) { if (CurrentRoute.Sections[s].Aspects[a].Number == 0) { break; } } s = CurrentRoute.Sections[s].PreviousSection; if (s < 0) { s = this.SectionIndex; break; } } } } if (Train.Plugin != null) { Train.Plugin.UpdateBeacon((int)this.Type, s, this.Data); } } }
/// <summary> /// 为组件添加监听事件 /// </summary> /// <param name="obj"></param> /// <param name="eventTriggerType"></param> /// <param name="callback"></param> /// <returns></returns> public static void AddListener(this Component obj, EventTriggerType eventTriggerType, UnityAction <BaseEventData> callback) { //添加EventTrigger组件 EventTrigger trigger = obj.GetComponent <EventTrigger> (); if (trigger == null) { trigger = obj.gameObject.AddComponent <EventTrigger> (); } //获取事件列表 List <EventTrigger.Entry> entries = trigger.triggers; if (entries == null) { entries = new List <EventTrigger.Entry> (); } //获取对应事件 EventTrigger.Entry entry = new EventTrigger.Entry(); bool isExist = false; for (int i = 0; i < entries.Count; i++) { if (entries[i].eventID == eventTriggerType) { entry = entries[i]; isExist = true; } } entry.callback.AddListener(callback); if (!isExist) { trigger.triggers.Add(entry); } }
public override void Trigger(int Direction, EventTriggerType TriggerType, AbstractTrain Train, AbstractCar Car) { if (Train != null) { if (TriggerType == EventTriggerType.FrontCarFrontAxle) { if (Direction < 0) { if (NextSectionIndex >= 0) { currentRoute.Sections[NextSectionIndex].TrainReachedStopPoint = false; } UpdateFrontBackward(Train); } else if (Direction > 0) { UpdateFrontForward(Train); } } else if (TriggerType == EventTriggerType.RearCarRearAxle) { if (Direction < 0) { UpdateRearBackward(Train); } else if (Direction > 0) { if (PreviousSectionIndex >= 0) { currentRoute.Sections[PreviousSectionIndex].TrainReachedStopPoint = false; } UpdateRearForward(Train); } } } }
public static void AddEvent(this MenuButton self, EventTriggerType type, UnityAction <BaseEventData> func) { EventTrigger.Entry newEvent = new EventTrigger.Entry { eventID = type }; newEvent.callback.AddListener(func); EventTrigger trig = self.gameObject.GetComponent <EventTrigger>(); if (trig == null) { trig = self.gameObject.AddComponent <EventTrigger>(); } trig.triggers.Add(newEvent); if (type == EventTriggerType.Submit) { self.AddEvent(EventTriggerType.PointerClick, func); } }
/// <summary> /// UGUI 控件添加公共事件监听 /// </summary> /// <param name="target">事件监听目标</param> /// <param name="type">事件类型</param> /// <param name="callback">回调函数</param> public static void AddCommonEventListener(this RectTransform target, EventTriggerType type, UnityAction <BaseEventData> callback) { EventTrigger trigger = target.GetComponent <EventTrigger>(); if (trigger == null) { trigger = target.gameObject.AddComponent <EventTrigger>(); } if (trigger.triggers == null) { trigger.triggers = new List <EventTrigger.Entry>(); } //定义一个事件入口 EventTrigger.Entry entry = new EventTrigger.Entry(); //设置事件类型 entry.eventID = type; //设置事件回调函数 entry.callback = new EventTrigger.TriggerEvent(); entry.callback.AddListener(callback); //添加事件到事件组 trigger.triggers.Add(entry); }
/// <summary> /// 为obj添加Eventrigger监听事件 /// </summary> /// <param name="obj">添加监听的对象</param> /// <param name="eventID">添加的监听类型</param> /// <param name="action">触发的函数</param> public void AddTriggersListener(GameObject obj, EventTriggerType eventType, UnityAction <BaseEventData> action) { //首先判断对象是否已经有EventTrigger组件,若没有那么需要添加 EventTrigger trigger = obj.GetComponent <EventTrigger>(); if (trigger == null) { trigger = obj.AddComponent <EventTrigger>(); trigger.triggers = new List <EventTrigger.Entry>(); // } //定义所要绑定的事件类型 EventTrigger.Entry entry = new EventTrigger.Entry { //设置事件类型 eventID = eventType }; //设置回调函数 entry.callback.AddListener(action); //添加事件触发记录到GameObject的事件触发组件 trigger.triggers.Add(entry); }
/// <summary>Triggers the playback of a sound</summary> /// <param name="Direction">The direction of travel- 1 for forwards, and -1 for backwards</param> /// <param name="TriggerType">They type of event which triggered this sound</param> /// <param name="Train">The root train which triggered this sound</param> /// <param name="Car">The car which triggered this sound</param> public override void Trigger(int Direction, EventTriggerType TriggerType, AbstractTrain Train, AbstractCar Car) { if (SoundsBase.SuppressSoundEvents) { return; } dynamic c = Car; switch (TriggerType) { case EventTriggerType.FrontCarFrontAxle: case EventTriggerType.OtherCarFrontAxle: c.FrontAxle.PointSoundTriggered = true; DontTriggerAnymore = false; break; case EventTriggerType.OtherCarRearAxle: case EventTriggerType.RearCarRearAxle: c.RearAxle.PointSoundTriggered = true; DontTriggerAnymore = false; break; } }
public override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, AbstractCar Car) { if (TriggerType == EventTriggerType.FrontCarFrontAxle) { if (Direction > 0) //FIXME: This only works for routes written in the forwards direction { int d = Train.DriverCar; SoundBuffer buffer = Train.Cars[d].Sounds.Halt.Buffer; if (buffer != null) { if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Single) { Train.Cars[d].Sounds.Halt.Source = Program.Sounds.PlaySound(buffer, 1.0, 1.0, Train.Cars[d].Sounds.Halt.Position, Train.Cars[d], false); } else if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Loop) { Train.Cars[d].Sounds.Halt.Source = Program.Sounds.PlaySound(buffer, 1.0, 1.0, Train.Cars[d].Sounds.Halt.Position, Train.Cars[d], true); } } this.DontTriggerAnymore = true; } } }
/// <summary>Creates a new TrackFollower</summary> public TrackFollower(Hosts.HostInterface Host, AbstractTrain train = null, AbstractCar car = null) { currentHost = Host; Train = train; Car = car; LastTrackElement = 0; TrackPosition = 0; WorldPosition = new Vector3(); WorldDirection = new Vector3(); WorldUp = new Vector3(); WorldSide = new Vector3(); Pitch = 0; CurveRadius = 0; CurveCant = 0; Odometer = 0; CantDueToInaccuracy = 0; AdhesionMultiplier = 0; RainIntensity = 0; SnowIntensity = 0; TriggerType = EventTriggerType.None; TrackIndex = 0; StationIndex = -1; }
private void OnCloseMailPanelWithCloseMsg(EventTriggerType eventtype, object button, PointerEventData eventData) { if (eventtype == EventTriggerType.PointerClick && m_MailinfoTransform != null) { Button getbtn = m_MailinfoTransform.Find("ImageBG/Button_queding").GetComponent <Button>(); if (!getbtn.interactable) { return; } CustomAudio.GetInstance().PlayCustomAudio(1002); uint key = (uint)button; UMessage getitemmsg = new UMessage((uint)GameCity.EMSG_ENUM.CrazyCityMsg_APPLAYGETMAILREWORDDATA); getitemmsg.Add(GameMain.hall_.GetPlayerId()); getitemmsg.Add(key); NetWorkClient.GetInstance().SendMsg(getitemmsg); getbtn.interactable = false; } }
private void OnHold(EventTriggerType trigger) { if (this.m_HoldCheck) { this.m_HoldOn = false; } else if (this.m_Enter) { if (this.IsFlag(ButtonEvent.Flag.DRAGMOVELOCK) && this.m_DragMove || (double)(Time.get_unscaledTime() - this.m_BeginEnterTime) <= 0.5) { return; } this.m_HoldCheck = true; if (!this.HasHoldEvent(trigger)) { return; } this.m_HoldOn = this.SendHold(trigger, this.m_Pos); } else { this.m_HoldCheck = true; } }
public override void Trigger(int direction, TrackFollower trackFollower) { EventTriggerType triggerType = trackFollower.TriggerType; if (triggerType == EventTriggerType.FrontCarFrontAxle || triggerType == EventTriggerType.OtherCarFrontAxle) { AbstractCar car = trackFollower.Car; if (DontTriggerAnymore || car == null) { return; } if (car.Index == trackFollower.Train.DriverCar) { dynamic dynamicCar = car; dynamicCar.Horns[(int)Type].Play(); dynamicCar.Horns[(int)Type].Stop(); if (TriggerOnce) { DontTriggerAnymore = true; } } } }
internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) { if (Train != null) { if (TriggerType == EventTriggerType.FrontCarFrontAxle) { if (Direction < 0) { if (this.NextSectionIndex >= 0) { Game.Sections[this.NextSectionIndex].TrainReachedStopPoint = false; } UpdateFrontBackward(Train, true); } else if (Direction > 0) { UpdateFrontForward(Train, true, true); } } else if (TriggerType == EventTriggerType.RearCarRearAxle) { if (Direction < 0) { UpdateRearBackward(Train, true); } else if (Direction > 0) { if (this.PreviousSectionIndex >= 0) { Game.Sections[this.PreviousSectionIndex].TrainReachedStopPoint = false; } UpdateRearForward(Train, true); } } } }
internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) { if (TriggerType == EventTriggerType.FrontCarFrontAxle) { if (Direction > 0) { int d = Train.DriverCar; Sounds.SoundBuffer buffer = Train.Cars[d].Sounds.Halt.Buffer; if (buffer != null) { OpenBveApi.Math.Vector3 pos = Train.Cars[d].Sounds.Halt.Position; if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Single) { Train.Cars[d].Sounds.Halt.Source = Sounds.PlaySound(buffer, 1.0, 1.0, pos, Train, d, false); } else if (Train.Specs.PassAlarm == TrainManager.PassAlarmType.Loop) { Train.Cars[d].Sounds.Halt.Source = Sounds.PlaySound(buffer, 1.0, 1.0, pos, Train, d, true); } } this.DontTriggerAnymore = true; } } }
public override void Trigger(int direction, TrackFollower trackFollower) { EventTriggerType triggerType = trackFollower.TriggerType; if (triggerType == EventTriggerType.FrontCarFrontAxle | triggerType == EventTriggerType.OtherCarFrontAxle) { AbstractCar car = trackFollower.Car; if (direction < 0) { car.Brightness.NextBrightness = CurrentBrightness; car.Brightness.NextTrackPosition = car.TrackPosition; car.Brightness.PreviousBrightness = PreviousBrightness; car.Brightness.PreviousTrackPosition = car.TrackPosition - PreviousDistance; } else if (direction > 0) { car.Brightness.PreviousBrightness = CurrentBrightness; car.Brightness.PreviousTrackPosition = car.TrackPosition; car.Brightness.NextBrightness = NextBrightness; car.Brightness.NextTrackPosition = car.TrackPosition + NextDistance; } } }
/// <summary>Triggers the playback of a sound</summary> /// <param name="Direction">The direction of travel- 1 for forwards, and -1 for backwards</param> /// <param name="TriggerType">They type of event which triggered this sound</param> /// <param name="Train">The root train which triggered this sound</param> /// <param name="CarIndex">The car index which triggered this sound</param> internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) { if (SuppressSoundEvents) { return; } if (TriggerType == EventTriggerType.FrontCarFrontAxle | TriggerType == EventTriggerType.OtherCarFrontAxle | TriggerType == EventTriggerType.OtherCarRearAxle | TriggerType == EventTriggerType.RearCarRearAxle) { if (!PlayerTrainOnly | Train == TrainManager.PlayerTrain) { Vector3 p = this.Position; double pitch = 1.0; double gain = 1.0; Sounds.SoundBuffer buffer = this.SoundBuffer; if (buffer != null) { if (this.Dynamic) { double spd = Math.Abs(Train.Specs.CurrentAverageSpeed); pitch = spd / this.Speed; gain = pitch < 0.5 ? 2.0 * pitch : 1.0; if (pitch < 0.2 | gain < 0.2) { buffer = null; } } if (buffer != null) { Sounds.PlaySound(buffer, pitch, gain, p, Train, CarIndex, false); } } this.DontTriggerAnymore = this.Once; } } }
void internalAddEvent <T>(GameObject gameobject, EventTriggerType type, UnityAction <T> action, T data) { if (!gameobject) { return; } EventTrigger trigger = gameobject.GetComponent <EventTrigger>(); if (trigger == null) { trigger = gameobject.gameObject.AddComponent <EventTrigger>(); } if (action == null) { return; } EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = type; entry.callback.AddListener(delegate { action(data); }); trigger.triggers.Add(entry); }
public override void Trigger(int Direction, EventTriggerType TriggerType, AbstractTrain Train, int CarIndex) { if (this.Type == -1 && Train == TrainManager.PlayerTrain || this.Type == 1 && Train != TrainManager.PlayerTrain) { return; } if (this.DontTriggerAnymore) { return; } if (TriggerType == EventTriggerType.TrainFront) { if (Direction > 0) { if (NextDestination != -1) { Train.Destination = NextDestination; } if (TriggerOnce) { DontTriggerAnymore = true; } } else { if (PreviousDestination != -1) { Train.Destination = PreviousDestination; } if (TriggerOnce) { DontTriggerAnymore = true; } } } }
/// <summary> /// 查看冠军排行榜按钮事件 /// </summary> private void OnClickChampionBtn(EventTriggerType eventtype, object button, PointerEventData eventData) { if (eventtype == EventTriggerType.PointerClick) { CustomAudio.GetInstance().PlayCustomAudio(1002); if (root_ == null) { return; } ismaster = false; root_.transform.Find("Top/Change_BG/Button_guanjun").gameObject.SetActive(false); root_.transform.Find("Top/Change_BG/Button_dashi").gameObject.SetActive(true); root_.transform.Find("Top/ChooseGame_BG/Dropdown").gameObject.SetActive(false); Ask4ChampionData(); GameMain.ST(CurRanIEnumerator); CurRanIEnumerator = RefreshMasterRankPanel(); GameMain.SC(CurRanIEnumerator); RemoveContentTournametChilds(); root_.transform.Find("Top/ImageIcon/Text").gameObject.GetComponent <Text>().text = "冠军排行"; } }
public static void addEventListner(GameObject gameObject, EventTriggerType triggerType, UnityAction <BaseEventData> unityAction) { EventTrigger eventTrigger = gameObject.GetComponent <EventTrigger>(); if (eventTrigger == null) { eventTrigger = gameObject.AddComponent <EventTrigger>(); } List <EventTrigger.Entry> entries = eventTrigger.triggers; if (entries == null) { entries = new List <EventTrigger.Entry>(); eventTrigger.triggers = entries; } EventTrigger.TriggerEvent trigger = new EventTrigger.TriggerEvent(); trigger.AddListener(unityAction); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = triggerType; entry.callback = trigger; entries.Add(entry); }
/// <summary> /// 添加UGUI事件监听,同一组eventType+action只能监听一次 /// </summary> /// <param name="eventType"></param> /// <param name="action"></param> public void AddListener(EventTriggerType eventType, UnityAction <BaseEventData> action) { triggers = triggers != null ? triggers : new List <Entry>(); List <Entry> listEntry = triggers; EventTrigger.Entry entry = null; for (int i = listEntry.Count - 1; i >= 0; --i) { if (listEntry[i].eventID == eventType) { entry = listEntry[i]; entry.callback.RemoveListener(action);//移除重复的监听 break; } } if (entry == null) { entry = new EventTrigger.Entry(); entry.eventID = eventType; listEntry.Add(entry); } entry.callback.AddListener(action); }
private void AddReplacingEntry(EventTrigger p_eventTrigger, EventTriggerType p_type) { if (p_eventTrigger != null) { EventTrigger.Entry v_entryToUpdate = null; foreach (EventTrigger.Entry v_entry in p_eventTrigger.triggers) { if (v_entry.eventID == p_type) { v_entryToUpdate = v_entry; break; } } if (v_entryToUpdate == null) { v_entryToUpdate = CreateEventEntry(p_type); p_eventTrigger.triggers.Add(v_entryToUpdate); } else { TryAddEventListener(v_entryToUpdate); } } }
public static void SetListener(GameObject go, EventTriggerType eventTriggerType, UnityAction<PointerEventData> eventData) { GetListener(go).SetListener(eventTriggerType, eventData); }
private void callListeners(EventTriggerType triggerType, BaseEventData data) { foreach (UnityAction<BaseEventData> listener in _listeners[triggerType]) listener(data); }
public UnityAction<BaseEventData> handler(EventTriggerType triggerType) { switch (triggerType) { case EventTriggerType.PointerDown: return onPointerDown; case EventTriggerType.PointerUp: return onPointerUp; case EventTriggerType.PointerClick: return onPointerClick; case EventTriggerType.PointerEnter: return onPointerEnter; case EventTriggerType.PointerExit: return onPointerExit; case EventTriggerType.InitializePotentialDrag: return onInitializePotentialDrag; case EventTriggerType.BeginDrag: return onBeginDrag; case EventTriggerType.EndDrag: return onEndDrag; case EventTriggerType.Drag: return onDrag; case EventTriggerType.Drop: return onDrop; case EventTriggerType.Select: return onSelect; case EventTriggerType.Deselect: return onDeselect; case EventTriggerType.UpdateSelected: return onUpdateSelected; case EventTriggerType.Submit: return onSubmit; case EventTriggerType.Cancel: return onCancel; case EventTriggerType.Move: return onMove; case EventTriggerType.Scroll: return onScroll; } return null; }
public UnityAction<BaseEventData> removeListener(EventTriggerType eventType, UnityAction<BaseEventData> listener) { if (listener == null) return null; _triggerHandler._listeners[eventType].Remove(listener); return listener; }
internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) { if (TriggerType == EventTriggerType.FrontCarFrontAxle) { if (Direction < 0) { Train.StationFrontCar = true; } else if (Direction > 0) { Train.StationFrontCar = false; if (Train == TrainManager.PlayerTrain) { Timetable.UpdateCustomTimetable(Game.Stations[this.StationIndex].TimetableDaytimeTexture, Game.Stations[this.StationIndex].TimetableNighttimeTexture); } } } else if (TriggerType == EventTriggerType.RearCarRearAxle) { if (Direction < 0) { Train.Station = this.StationIndex; Train.StationRearCar = true; Train.LastStation = this.StationIndex; } else if (Direction > 0) { if (Train.Station == StationIndex) { if (Train == TrainManager.PlayerTrain) { if (Game.PlayerStopsAtStation(StationIndex) & TrainManager.PlayerTrain.StationState == TrainManager.TrainStopState.Pending) { string s = Interface.GetInterfaceString("message_station_passed"); s = s.Replace("[name]", Game.Stations[StationIndex].Name); Game.AddMessage(s, Game.MessageDependency.None, Interface.GameMode.Normal, Game.MessageColor.Orange, Game.SecondsSinceMidnight + 10.0); } else if (Game.PlayerStopsAtStation(StationIndex) & TrainManager.PlayerTrain.StationState == TrainManager.TrainStopState.Boarding) { string s = Interface.GetInterfaceString("message_station_passed_boarding"); s = s.Replace("[name]", Game.Stations[StationIndex].Name); Game.AddMessage(s, Game.MessageDependency.None, Interface.GameMode.Normal, Game.MessageColor.Red, Game.SecondsSinceMidnight + 10.0); } } Train.Station = -1; Train.StationRearCar = false; Train.StationState = TrainManager.TrainStopState.Pending; int d = Train.DriverCar; Sounds.StopSound(Train.Cars[d].Sounds.Halt.Source); } } } }
internal override void Trigger(int Direction, EventTriggerType TriggerType, TrainManager.Train Train, int CarIndex) { if (SuppressSoundEvents) return; if (TriggerType == EventTriggerType.FrontCarFrontAxle | TriggerType == EventTriggerType.OtherCarFrontAxle | TriggerType == EventTriggerType.OtherCarRearAxle | TriggerType == EventTriggerType.RearCarRearAxle) { if (!PlayerTrainOnly | Train == TrainManager.PlayerTrain) { Vector3 p = this.Position; double pitch = 1.0; double gain = 1.0; Sounds.SoundBuffer buffer = this.SoundBuffer; if (buffer == null) { // HACK: Represents the train point sound if (TriggerType == EventTriggerType.FrontCarFrontAxle | TriggerType == EventTriggerType.OtherCarFrontAxle) { if (Train.Specs.CurrentAverageSpeed <= 0.0) return; buffer = Train.Cars[CarIndex].Sounds.PointFrontAxle.Buffer; p = Train.Cars[CarIndex].Sounds.PointFrontAxle.Position; } else { return; // HACK: Don't trigger sound for the rear axles //buffer = Train.Cars[CarIndex].Sounds.PointRearAxle.Buffer; //p = Train.Cars[CarIndex].Sounds.PointRearAxle.Position; } } if (buffer != null) { if (this.Dynamic) { double spd = Math.Abs(Train.Specs.CurrentAverageSpeed); pitch = spd / this.Speed; gain = pitch < 0.5 ? 2.0 * pitch : 1.0; if (pitch < 0.2 | gain < 0.2) { buffer = null; } } if (buffer != null) { Sounds.PlaySound(buffer, pitch, gain, p, Train, CarIndex, false); } } this.DontTriggerAnymore = this.Once; } } }