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); } }