private void Start() { this.Sequence() .Delay(1.0f) .Event(() => Log.I("Sequence1 延时了 1s")) .Begin() .DisposeWhenFinished() // Default is DisposeWhenGameObjDestroyed .OnDisposed(() => { Log.I("Sequence1 destroyed"); }); var sequenceNode2 = SequenceNode.Allocate(DelayNode.Allocate(1.5f)); sequenceNode2.Append(EventNode.Allocate(() => Log.I("Sequence2 延时 1.5s"))); sequenceNode2.Append(DelayNode.Allocate(0.5f)); sequenceNode2.Append(EventNode.Allocate(() => Log.I("Sequence2 延时 2.0s"))); this.ExecuteNode(sequenceNode2); /* 这种方式需要自己手动进行销毁 * sequenceNode2.Dispose(); * sequenceNode2 = null; */ // 或者 OnDestroy 触发时进行销毁 sequenceNode2.AddTo(this); }
private IEnumerator Start() { // this.Sequence().Delay(); var delayNode = new DelayNode(1.0f); delayNode.OnBeganCallback = () => Log.I("first began"); delayNode.OnEndedCallback = () => Log.I("first ended"); var delayNode2 = new DelayNode(1.0f); delayNode2.OnBeganCallback = () => Log.I("second began"); delayNode2.OnEndedCallback = () => Log.I("second ended"); yield return(SequenceNode.Allocate(delayNode, delayNode2).Execute()); yield return(QWait.ForSeconds(1.0f)); Log.I("from seconds"); mHostIp = NetworkUtil.GetAddressIP(); mSocketServer = FlexiSocket.Create(1366, Protocols.BodyLengthPrefix, false); mSocketServer.ClientConnected += delegate(ISocketClientToken client) { Log.I("OnClientConnected ID:{0} Count:{1}", client.ID, mSocketServer.Clients.Count); }; mSocketServer.SentToClient += delegate(bool success, ISocketClientToken client) { if (success) { } }; mSocketServer.ReceivedFromClient += delegate(ISocketClientToken client, byte[] message) { SocketMsg msg = SerializeHelper.FromProtoBuff <SocketMsg>(message); mMessage = msg.msgId + ":" + msg.ToEventID; if (!string.IsNullOrEmpty(msg.Msg)) { mMessage += ":" + msg.Msg; } Log.I("OnReceivedFromClient:{0}", mMessage); mMsgQueue.Enqueue(msg); }; mSocketServer.ClientDisconnected += delegate(ISocketClientToken client) {}; mSocketServer.StartListen(10); yield return(0); }
/// <summary> /// 连接到移动设备 /// </summary> /// <param name="mobileIPAddress"></param> /// <returns></returns> public void ConnectToMobile(string mobileIPAddress, ConnectedCallback onConnectionEvent) { Log.I("mobileIPAddres:{0}", mobileIPAddress); mSocketClient = FlexiSocket.Create(mobileIPAddress, 1366, Protocols.BodyLengthPrefix); mSocketClient.Connected += onConnectionEvent; mSocketClient.Disconnected += OnDisconnected; mSocketClient.Received += OnReceived; mSocketClient.Sent += OnSent; DelayNode delayNode = new DelayNode(1.0f) { OnEndedCallback = delegate { mSocketClient.Connect(); } }; StartCoroutine(delayNode.Execute()); }
/// <summary> /// Same as Delayw /// </summary> /// <param name="senfChain"></param> /// <param name="seconds"></param> /// <returns></returns> public static IExecuteNodeChain Wait(this IExecuteNodeChain senfChain, float seconds) { return(senfChain.Append(DelayNode.Allocate(seconds))); }
public static void Delay <T>(this T selfBehaviour, float seconds, Action delayEvent) where T : MonoBehaviour { selfBehaviour.ExecuteNode(DelayNode.Allocate(seconds, delayEvent)); }
protected override void ProcessMsg(int key, QMsg msg) { Log.I("{0}", msg.EventID); switch (key) { case (ushort)UIFilterEvent.DelayLock: Log.I("receive"); UILockOnClickEventMsg lockOnClickEventMsg = msg as UILockOnClickEventMsg; LockBtnOnClick = true; DelayNode delayNode = new DelayNode(lockOnClickEventMsg.LockTime) { OnEndedCallback = delegate { LockBtnOnClick = false; } }; StartCoroutine(delayNode.Execute()); break; case (ushort)UIFilterEvent.Lock: Log.I("Lock"); Lock = true; break; case (ushort)UIFilterEvent.UnLock: Log.I("UnLock"); Lock = false; break; case (int)UIFilterEvent.LockObjEvent: { UILockObjEventMsg lockObjEventMsg = msg as UILockObjEventMsg; if (null == LockedObj) { LockedObj = lockObjEventMsg.LockedObj; } else if (LockedObj == lockObjEventMsg.LockedObj) { // maybe two finger in one obj Log.W("error: curLockedObj is already seted"); } else if (LockedObj != lockObjEventMsg.LockedObj) { throw new Exception("error: pre obj need unlocked"); } } break; case (int)UIFilterEvent.UnlockObjEvent: { UIUnlockObjEventMsg unlockObjEventMsg = msg as UIUnlockObjEventMsg; if (unlockObjEventMsg.UnlockedObj == LockedObj) { unlockObjEventMsg.UnlockedObj = null; LockedObj = null; } else if (LockedObj == null) { Log.W("error: curLockedObj is already unlocked"); } else if (LockedObj != unlockObjEventMsg.UnlockedObj) { throw new Exception("error: pre obj need unlocked"); } } break; } }