Code:
Character localPlayer = PlayerClient.GetLocalPlayer().controllable.GetComponent<Character>();
foreach (Object GameObject in FindObjectsOfType(typeof(Character)))
{
if (GameObject)
{
var Character = GameObject as Character;
if (Character.gameObject != this)
{
PlayerClient playerClient = Character.playerClient;
if (playerClient != null)
DrawLabel(Character.origin,playerClient.userName);
switch (Character.name.Replace("(Clone)", ""))
{
case "Chicken_A":
DrawLabel(Character.origin, String.Format("Chicken [{0}]", Convert.ToString(Vector3.Distance(Character.transform.position, localPlayer.transform.position))));
break;
case "Rabbit_A":
DrawLabel(Character.origin, String.Format("Rabbit [{0}]", Convert.ToString(Vector3.Distance(Character.transform.position, localPlayer.transform.position))));
break;
case "Stag_A":
DrawLabel(Character.origin, String.Format("Deer [{0}]", Convert.ToString(Vector3.Distance(Character.transform.position, localPlayer.transform.position))));
break;
case "Boar_A":
DrawLabel(Character.origin, String.Format("Bear [{0}]", Convert.ToString(Vector3.Distance(Character.transform.position, localPlayer.transform.position))));
break;
case "ZombieNPC":
case "ZombieNPC_SLOW":
DrawLabel(Character.origin, String.Format("Zombie [{0}]", Convert.ToString(Vector3.Distance(Character.transform.position, localPlayer.transform.position))), Color.red);
break;
}
}
}
}DrawLabel:
Code:
private void DrawLabel(Vector3 point, string label)
{
DrawLabel(point, label, Color.white);
}
private void DrawLabel(Vector3 point, string label,Color color)
{
Vector3? vector = CameraFX.World2Screen(point);
if (vector.HasValue)
{
Vector3 value = vector.Value;
if (value.z > 0f)
{
Vector2 vector2 = GUIUtility.ScreenToGUIPoint(value);
vector2.y = Screen.height - (vector2.y + 1f);
GUI.color = color != null ? color : Color.white;
GUI.Label(new Rect(vector2.x - 64f, vector2.y - 12f, 128f, 24f), label);
}
}
}
Aucun commentaire:
Enregistrer un commentaire