有没有办法优化我脚本的这一部分?
public TextMeshProUGUI interactionText;
public TextMeshProUGUI pickedUpText;
public GameObject InteractionTextShow;
public GameObject PickedUpTextShow;
如果可能的话,我希望在这个脚本中自动分配Text和TextShow。interactionText用于将对象的名称分配给name,而interactionTextShow用于显示文本。下面是完整的代码。
public class ItemPickup : Interactable
{
public TextMeshProUGUI interactionText;
public TextMeshProUGUI pickedUpText;
public GameObject InteractionTextShow;
public GameObject PickedUpTextShow;
[SerializeField] private Item item;
public override void OnFocus()
{
print("Press E to pick up " + item.Name);
interactionText.text = item.Name;
InteractionTextShow.SetActive(true);
}
public override void OnInteract()
{
PickUp();
PickedUpTextShow.SetActive(true);
pickedUpText.text = "Picked up: " + item.Name;
}
public override void OnLoseFocus()
{
InteractionTextShow.SetActive(false);
print("Lost focus with " + item.Name);
}
void PickUp()
{
print("Picked up: " + item.Name);
bool wasPickedUp = Inventory.instance.Add(item);
if (wasPickedUp)
{
Destroy(gameObject);
InteractionTextShow.SetActive(false);
}
}
}
我试图删除TextMeshProUGUI,并分配类似于interactionTextShow.TextMeshProUGUI.text = item.Name的东西,但没有起作用
1条答案
按热度按时间lvmkulzt1#
我通常通过程序(通过代码)分配脚本的方法是示例化一个空对象,如下所示:“游戏对象对象=示例化(新游戏对象);“,然后将脚本分配给它,如下所示:“对象的名称。”
希望这在某种程度上有所帮助!