Inheritance: MonoBehaviour
Ejemplo n.º 1
0
        public override void Tick(float DeltaTime)
        {
            if (IsPause || !IsAlive)
            {
                return;
            }

            Time_ += DeltaTime;
            if (Time_ >= Interval)
            {
                Time_ -= Interval;

                var Count = EmittedCountAttr.Get();
                Count = Mathf.Clamp(Count, 0, int.MaxValue);
                for (var Index = 0u; Index < Count; ++Index)
                {
                    OnEmitted(Index, (uint)Count);
                }
                OnTrigger?.Invoke((uint)Count);

                if (TriggerCount > 0)
                {
                    TriggerCount--;
                    if (TriggerCount == 0)
                    {
                        IsPause = true;
                        IsAlive = false;
                    }
                }
            }
        }
Ejemplo n.º 2
0
 void Trigger(bool now, int line)
 {
     if (now != NowState[line])
     {
         NowState[line]      = now;
         LastStateDate[line] = DateTime.Now;
     }
     if (NowState[line] == LastState[line])
     {
         return;
     }
     #region 滤波
     var delay = (DateTime.Now - LastStateDate[line]).Value.TotalMilliseconds;
     if ((NowState[line] && delay > Config.IOCard.Line[line].OnDelay) ||
         (!NowState[line] && delay > Config.IOCard.Line[line].OffDelay))
     {
         LastState[line] = NowState[line];
         if (now)
         {
             Task.Run(() => { OnTrigger?.Invoke(line); });
         }
         else
         {
             Task.Run(() => { OnComplate?.Invoke(line); });
         }
     }
     #endregion
 }
Ejemplo n.º 3
0
        private void Listen()
        {
            while (true)
            {
                try
                {
                    if (m_bStop)
                    {
                        Thread.Sleep(Timeout.Infinite);
                    }

                    /// http://blogs.msdn.com/b/bclteam/archive/2006/06/02/618156.aspx
                    if (!m_bManualCPU)
                    {
                        sensor.cpu = (m_pc1 != null) ? m_pc1.NextValue() : sensor.cpu;
                        if (sensor.cpu < 1)
                        {
                            sensor.cpu = 1;
                        }
                    }
                    if (!m_bManualRAM)
                    {
                        sensor.ram = (uint)((m_pc2 != null) ? m_pc2.NextValue() : sensor.ram);
                        //if (sensor.ramTotal == 0)
                        sensor.ramTotal = (uint)((m_pc3 != null) ? m_pc3.NextValue() : sensor.ramTotal);
                    }

                    OnTrigger.Invoke();
                    System.Threading.Thread.Sleep(m_iUpdateRate);
                }
                catch { }
            }
        }
Ejemplo n.º 4
0
    /// <summary>
    /// 触发同步
    /// </summary>
    /// <param name="strTriggerName"></param>
    /// <param name="onTrigger"></param>
    /// <param name="args"></param>
    static public void Trigger(string strTriggerName, OnTrigger onTrigger, params object[] args)
    {
        if (!mTriggers.ContainsKey(strTriggerName))
        {
            return;
        }

        ///检查是否可以触发
        TriggerInfo tInfo = mTriggers[strTriggerName];

        tInfo.iTriggerCount--;
        if (tInfo.iTriggerCount > 0)
        {
            return;
        }

        ///触发用户接口
        if (onTrigger != null)
        {
            try
            {
                onTrigger(args);
            }
            catch (System.Exception ex)
            {
                LogSystem.LogError(ex.ToString());
            }
        }
        ///清除触发器
        mTriggers.Remove(strTriggerName);
    }
    public virtual void Interact()
    {
        bool hasItems = HasRequiredItems();

        if (!IsInteractable || !hasItems || (!Toggle && triggered) || !InteractionCountTest())
        {
            if (IsInteractable && !triggered && !hasItems)
            {
                ShowPopupText(true);
                StartCoroutine(hidePopupText(2));
            }
            return;
        }

        triggered = !triggered;

        if (TriggerAnimator != null)
        {
            TriggerAnimator.SetBool(OnTriggerAnimation, triggered);
        }

        OnTrigger?.Invoke(triggered, this);
        FindObjectOfType <PortalManager>().AlertMeter += AlertAmount;

        //play sound
        if (triggerSound)
        {
            triggerSound.Play();
        }
    }
Ejemplo n.º 6
0
 private void TriggerTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
 {
     if (!IsRuning)
     {
         triggerTimer?.Stop();
         return;
     }
     if ((DateTime.Now - beginDate).TotalMilliseconds >= nextDelay)
     {
         Task.Run(() => { OnTrigger?.Invoke(); });
         beginDate = DateTime.Now;
         double speed = double.Parse(App.Settings.Speed ?? "0");
         nextDelay = Config.Tray.OtherInterval / speed;
         triggerTimes++;
     }
     if (triggerTimes >= 5)
     {
         if (triggerTimer == null)
         {
             return;
         }
         triggerTimer.Stop();
         triggerTimer.Dispose();
         triggerTimer.Elapsed -= TriggerTimer_Elapsed;
         triggerTimer          = null;
     }
 }
Ejemplo n.º 7
0
 protected virtual void OnTriggerEnter(Collider other)
 {
     if (other.gameObject.CompareTag("Player"))
     {
         OnTrigger?.Invoke();
     }
 }
Ejemplo n.º 8
0
        public static OnTrigger MakeBoxTrigger(GameObject gameObject, Vector2 size)
        {
            OnTrigger ot = null;

            if (gameObject.GetComponent <OnTrigger>())
            {
                ot = gameObject.GetComponent <OnTrigger>();
            }
            else
            {
                ot = gameObject.AddComponent <OnTrigger>();
            }

            if (ot.start)
            {
                BoxCollider2D bc = null;
                if (!gameObject.GetComponent <BoxCollider2D>())
                {
                    bc = gameObject.AddComponent <BoxCollider2D>();
                }
                else
                {
                    bc = gameObject.GetComponent <BoxCollider2D>();
                }
                bc.size      = size;
                bc.isTrigger = true;
                ot.start     = false;
            }
            return(ot);
        }
Ejemplo n.º 9
0
        public static bool IsTriggering(GameObject gameObject)
        {
            OnTrigger ot = null;

            if (gameObject.GetComponent <OnTrigger>())
            {
                ot = gameObject.GetComponent <OnTrigger>();
            }
            else
            {
                ot = gameObject.AddComponent <OnTrigger>();
            }
            if (ot.start)
            {
                if (!gameObject.GetComponent <PolygonCollider2D>())
                {
                    PolygonCollider2D pc = gameObject.AddComponent <PolygonCollider2D>();
                    pc.isTrigger = true;
                }
                else
                {
                    PolygonCollider2D pc = gameObject.GetComponent <PolygonCollider2D>();
                    pc.isTrigger = true;
                }
                ot.start = false;
            }
            if (ot.isTrigerring)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
 private void OnTriggerEnter(Collider other)
 {
     if (OnTrigger != null)
     {
         OnTrigger.Invoke(this, other);
     }
 }
Ejemplo n.º 11
0
 private void OnTriggerEnter(Collider other)
 {
     if (!other.isTrigger)
     {
         OnTrigger?.Invoke(this);
         Destroy(gameObject);
     }
 }
Ejemplo n.º 12
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        OnTrigger.Invoke();
        FindObjectOfType <AudioCreater>().PlayEquip();
        Rigidbody2D player = GameObject.FindGameObjectWithTag("Player").GetComponent <Rigidbody2D>();

        player.velocity = Speed;
    }
Ejemplo n.º 13
0
 public void Trigger()
 {
     storyFlag.Activate();
     OnTrigger?.Invoke();
     Destroy(gameObject);
     this.Noise(audioClip);
     FindObjectOfType <StageManager>().Save();
 }
Ejemplo n.º 14
0
 public void Trigger(object sender, string what)
 {
     sp.GetService <FSIMTriggerHandler>();
     OnTrigger?.Invoke(sender, new FSIMTriggerArgs()
     {
         What = what
     });
 }
Ejemplo n.º 15
0
 private void OnTriggerEnter2D(Collider2D col)
 {
     if (RecoverCoroutine == null)
     {
         RecoverCoroutine = StartCoroutine(RecoverRoutine());
         OnTrigger?.Invoke();
     }
 }
Ejemplo n.º 16
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.gameObject.transform == target)
     {
         spriteRenderer.sprite = sps[2];
         OnTrigger.Invoke();
     }
 }
Ejemplo n.º 17
0
        public void TriggerEnter2D(Collider2D collision)
        {
            var unit = collision.transform.GetComponentInParent <UnitController>();

            if (unit != null)
            {
                OnTrigger?.Invoke(unit);
            }
        }
Ejemplo n.º 18
0
    /// <summary>
    /// 创建帧延时触发器
    /// </summary>
    /// <param name="frameDelay">延时帧数</param>
    /// <param name="onTrigger">回调函数</param>
    /// <param name="args">回调参数</param>
    /// <returns></returns>
    public static void CreateFrameTrigger(int frameDelay, OnTrigger onTrigger, params object[] args)
    {
        FrameTriggerInfo ftInfo = new FrameTriggerInfo();

        ftInfo.iFrameDelay = frameDelay < 1 ? 1 : frameDelay;
        ftInfo.onTrigger   = onTrigger;
        ftInfo.args        = args;
        mFrameTrigger.Add(ftInfo);
    }
Ejemplo n.º 19
0
 public virtual void Start()
 {
     trigger = hit.GetComponent <OnTrigger>();
     hit.SetActive(false);
     if (swordTrail != null)
     {
         swordTrail.SetActive(false);
     }
 }
Ejemplo n.º 20
0
    private void OnCollisionStay(Collision collision)
    {
        if (OnTrigger != null && IsTriggerCollision(collision))
        {
            _deltaForceMod = 0.0f;

            OnTrigger.Invoke();
        }
    }
Ejemplo n.º 21
0
 void BroadcastEvent()
 {
     if (!moduleObject.isActiveAndEnabled || !rulepass || OnTrigger == null || timerEvent < eventInterval)
     {
         return;
     }
     timerEvent = 0f;
     //Position: if atSurface is true, then return water level position, otherwise return this.transform.position
     OnTrigger.Invoke(eventAtSurface ? new Vector3(emitPos.x, (transf.position.y + currentWaterPos) - 0.35f, emitPos.z) : transf.position, transf.rotation);
 }
    public void Reset()
    {
        triggered = false;

        if (TriggerAnimator != null)
        {
            TriggerAnimator.SetBool(OnTriggerAnimation, triggered);
        }

        OnTrigger?.Invoke(triggered, this);
    }
Ejemplo n.º 23
0
 public void OnMouseUp(MouseButtonEventArgs e)
 {
     if (e.Button == _triggerButton && _pressed)
     {
         if (MouseInside())
         {
             OnTrigger?.Invoke();
         }
         _pressed = false;
     }
 }
Ejemplo n.º 24
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.tag == "Player")
     {
         PlayEquip();
         OnTrigger.Invoke();
         if (destroy)
         {
             Destroy(gameObject);
         }
     }
 }
Ejemplo n.º 25
0
        public bool Update(float dt)
        {
            currentTime -= dt;

            if (currentTime < 0.0f)
            {
                currentTime = time;
                OnTrigger?.Invoke();
                return(true);
            }
            return(false);
        }
Ejemplo n.º 26
0
 public Action(KeyCode key,
               string name,
               OnTrigger onTrigger = null,
               OnHold onHold       = null,
               OnRelease onRelease = null)
 {
     Key             = key;
     Name            = name;
     OnTriggerMethod = onTrigger;
     OnHoldMethod    = onHold;
     OnReleaseMethod = onRelease;
 }
Ejemplo n.º 27
0
    private IEnumerator LowerDrawbridge()
    {
        for (float i = 90; i >= 0; i -= 30 * Time.deltaTime)
        {
            transform.rotation = Quaternion.Euler(0, 0, i);
            yield return(null);
        }
        transform.rotation = Quaternion.Euler(0, 0, 0);

        OnTrigger?.Invoke();

        yield return(null);
    }
Ejemplo n.º 28
0
 private void OnCollisionEnter2D(Collision2D collision)
 {
     if (collision.gameObject.tag == "Player")
     {
         FindObjectOfType <AudioCreater>().PlayEquip();
         OnTrigger.Invoke();
         Debug.Log("gg");
         if (destroy)
         {
             Destroy(gameObject);
         }
     }
 }
Ejemplo n.º 29
0
    public void OnInputTrigger(bool active)
    {
        if ((active && !startActive) || (!active && startActive))
        {
            DoorOpen();
        }
        else
        {
            DoorClose();
        }

        OnTrigger.Invoke(active);
    }
Ejemplo n.º 30
0
        public void ResolveCollision(ICollider other)
        {
            if (other == this || !other.CollideRectangle.IntersectsWith(CollideRectangle))
            {
                return;
            }

            OnTrigger?.Invoke(other);
            other.InvokeTrigger(this);
            if (Static || !Collision || !other.Collision)
            {
                return;
            }
            OnCollision?.Invoke(other);
            other.InvokeCollision(this);

            var intersectionType = GetIntersectionType(CollideRectangle, other.CollideRectangle);

            if ((intersectionType == IntersectionType.Right ||
                 intersectionType == IntersectionType.Left) && other.Static)
            {
                Velocity.X = 0;
            }
            switch (intersectionType)
            {
            case IntersectionType.Left:
                SetX(other.CollideRectangle.Left - CollideRectangle.Width);
                break;

            case IntersectionType.Right:
                SetX(other.CollideRectangle.Right);
                break;

            case IntersectionType.Top:
                SetY(other.CollideRectangle.Top - CollideRectangle.Height + other.Velocity.Y);
                //Position.Y = other.CollideRectangle.Top - CollideRectangle.Height;
                if (Velocity.Y > 0)
                {
                    Velocity.Y = 0;
                }
                break;

            case IntersectionType.Bottom:
                SetY(other.CollideRectangle.Bottom);
                if (Velocity.Y < 0)
                {
                    Velocity.Y = 0;
                }
                break;
            }
        }
Ejemplo n.º 31
0
	void OnEnable () {
		instance = this;
	}