示例#1
0
 public void OnAreaEnter(ReactiveArea area)
 {
     if (DestroyInWater && Controller.Inside <Water>())
     {
         Remove();
     }
 }
示例#2
0
        public void OnAreaEnter(ReactiveArea area)
        {
            var water = area as Water;

            if (water != null)
            {
                _water = water;
                Electrocute();
            }
        }
示例#3
0
        private void OnAreaExit(ReactiveArea area)
        {
            if (Underwater && !Controller.Inside <Water>())
            {
                Underwater = false;
                OnExitWater.Invoke();
                UpdateCanBreathe();
            }

            if (StatusAnimator != null && UnderwaterBoolHash != 0)
            {
                StatusAnimator.SetBool(UnderwaterBoolHash, Underwater);
            }
        }
示例#4
0
        protected void OnAreaExit(ReactiveArea area)
        {
            if (!(area is Water) || Player.Inside <Water>())
            {
                return;
            }

            var exit = FindWaterExit();

            if (!exit)
            {
                return;
            }

            var splash = Instantiate(Splash);

            splash.transform.position    = exit.point;
            splash.transform.eulerAngles = new Vector3(
                splash.transform.eulerAngles.x,
                splash.transform.eulerAngles.y,
                DMath.Angle(exit.normal) * Mathf.Rad2Deg - 90f);

            OnExitSplash.Invoke();
        }