void Update() { Player player = Player.localPlayer; // use collider point(s) to also work with big entities if (player != null && player.Target != null && player.Target is Npc && Utility.Utility.ClosestDistance(player.collider, player.Target.collider) <= player.interactionRange) { createNameInput.interactable = !player.InGuild() && player.Money >= GuildSystem.CreationPrice; createNameInput.characterLimit = GuildSystem.NameMaxLength; createPriceText.text = GuildSystem.CreationPrice.ToString(); createButton.interactable = !player.InGuild() && GuildSystem.IsValidGuildName(createNameInput.text); createButton.onClick.SetListener(() => { player.CmdCreateGuild(createNameInput.text); createNameInput.text = ""; // clear the input afterwards }); terminateButton.interactable = player.guild.CanTerminate(player.name); terminateButton.onClick.SetListener(() => { player.CmdTerminateGuild(); }); } else { panel.SetActive(false); } }