예제 #1
0
        private void SetHintArrowByScreenPos(MonoHintArrow arrow, BaseMonoEntity entity)
        {
            bool flag = (((entity != null) && entity.IsActive()) && !Singleton <AvatarManager> .Instance.IsLocalAvatar(entity.GetRuntimeID())) && !Singleton <CameraManager> .Instance.GetMainCamera().IsEntityVisible(entity);

            bool isArrowVisibleBefore = (arrow.state == MonoHintArrow.State.Visible) || (arrow.state == MonoHintArrow.State.FadingIn);
            bool flag3 = (entity == null) || entity.IsToBeRemove();

            if ((arrow.state == MonoHintArrow.State.Hidden) && flag3)
            {
                UnityEngine.Object.Destroy(arrow.gameObject);
            }
            else if (isArrowVisibleBefore && !flag)
            {
                arrow.SetVisible(false);
                if (flag3)
                {
                    arrow.SetDestroyUponFadeOut();
                }
            }
            else if (!isArrowVisibleBefore && flag)
            {
                arrow.SetVisible(true);
            }
            if (flag)
            {
                this.UpdateHintArrow(arrow.transform, entity.XZPosition, isArrowVisibleBefore);
            }
        }