public GenericDictionary<Button, GameObject> buttonPrefabMap; private GameObject currentPrefab; private bool isPrefabLoaded = false; public GameObject CHild;//子物体 public void LoadPrefab(Button button) { if (isPrefabLoaded) { Destroy(currentPrefab); isPrefabLoaded = false; return; } // 获取按钮对应的预制体 GameObject prefab = buttonPrefabMap[button];//GameObject // 销毁当前加载的预制体 // Destroy(currentPrefab); // 加载新的预制体 currentPrefab = Instantiate(prefab,CHild.transform); isPrefabLoaded = true; } unity 修改代码 增加点击一下按钮添加模型 按钮增加外轮廓红色 再次点击删除模型 按钮取消外轮廓
时间: 2024-02-11 14:26:30 浏览: 75
您可以尝试在LoadPrefab函数中添加一些代码来达到您想要的效果,如下所示:
public void LoadPrefab(Button button)
{
if (isPrefabLoaded)
{
Destroy(currentPrefab);
isPrefabLoaded = false;
button.GetComponent<Image>().outline = false; // 取消外轮廓
return;
}
GameObject prefab = buttonPrefabMap[button];
currentPrefab = Instantiate(prefab, CHild.transform);
isPrefabLoaded = true;
button.GetComponent<Image>().outline = true; // 添加外轮廓
// 添加一个点击事件,用于删除模型
button.onClick.AddListener(() =>
{
Destroy(currentPrefab);
isPrefabLoaded = false;
button.GetComponent<Image>().outline = false; // 取消外轮廓
});
}
在代码中,我们使用button.GetComponent<Image>().outline来添加或取消按钮的外轮廓。我们还添加了一个点击事件,用于在再次点击按钮时删除已加载的模型。
阅读全文