private r_Client GetClosestTarget()
        {
            r_Client bestTarget = null;

            for (int i = 0; i < r_ClientManager.m_Clients.Count; i++)
            {
                float   closestDistanceSqr = UnityEngine.Mathf.Infinity;
                Vector3 currentPosition    = new Vector3(m_Position.x, m_Position.y, m_Position.z);
                foreach (var potentialTarget in r_ClientManager.m_Clients)
                {
                    Vector3 directionToTarget = potentialTarget.Value.GetPositionToVector3() - currentPosition;
                    float   dSqrToTarget      = directionToTarget.LengthSquared();
                    if (dSqrToTarget < closestDistanceSqr)
                    {
                        if (dSqrToTarget > 5 && dSqrToTarget < 0.9f)
                        {
                            return(null);
                        }
                        closestDistanceSqr = dSqrToTarget;
                        bestTarget         = potentialTarget.Value;
                    }
                }
            }
            return(bestTarget);
        }
        public void Update()
        {
            if (r_ClientManager.m_Clients.Count > 0)
            {
                if (GetClosestTarget() == null)
                {
                    return;
                }

                r_Client _target = GetClosestTarget();

                m_TargetPosition = _target.m_Position;
            }

            if (r_ClientManager.m_Clients.Count > 0)
            {
                r_SendWorldPacket.SendWorldObjectUpdateToClient(this.m_GUID, this.m_TargetPosition, this.m_Rotation, this.m_EntityType);
            }
        }