我正在為 TPS 游戲制作互動系統,目前正在嘗試制作類似分裂細胞的互動系統,您可以在彈出選單中選擇要與之互動的內容。

我想出了一種方法來創建可互動串列并設定 UI,但我不知道如何將特定專案的互動(具有與空互動函式互動的界面)分配給單擊按鈕。
我猜事件是要走的路,但我不知道如何通過實體化將腳本分配給按鈕 onClicked 事件。


`
private void Update()
{
interactorsFound = Physics.OverlapBoxNonAlloc(interactor.position, GetComponent<BoxCollider>().size, collidersFound, Quaternion.identity, interactablesLayer, QueryTriggerInteraction.Ignore);
if (interactorsFound != 0)
{
interactionUI.SetActive(true);
interactionInteractButton.SetActive(true);
for (int i = 0; i < interactorsFound; i )
{
var _interactorsFound = collidersFound[i];
if (_interactorsFound.GetComponent<IInteract>() != null)
{
if (!interactablesList.Contains(_interactorsFound.gameObject))
{
interactablesList.Add(_interactorsFound.gameObject);
foreach (GameObject item in interactablesList)
{
if (interactionBackground.transform.childCount > 0)
{
for (int k = 0; k < interactionBackground.transform.childCount; k )
{
Destroy(interactionBackground.transform.GetChild(k).gameObject);
}
}
StartCoroutine(DeleteRoutine(interactionBackground));
}
}
}
}
}
// if interactorsFound == 0
else
{
for (int i = 0; i < interactionBackground.transform.childCount; i )
{
Destroy(interactionBackground.transform.GetChild(i).gameObject);
}
interactablesList.Clear();
interactionUI.SetActive(false);
interactionInteractButton.SetActive(false);
}
}
private IEnumerator DeleteRoutine(GameObject gameObject)
{
yield return new WaitUntil(() => gameObject.transform.childCount == 0);
for (int j = 0; j < interactablesList.Count; j )
{
Instantiate(interactionOption, interactionUI.transform.position, quaternion.identity, interactionBackground.transform);
interactionBackground.transform.GetChild(j).GetComponentInChildren<TMP_Text>().text = interactablesList[j].name;
interactionBackground.transform.GetChild(j).name = interactablesList[j].name;
}
}
`
uj5u.com熱心網友回復:
啟動按鈕
您可以使用按鈕組件啟動按鈕預制件或預先存在的游戲物件。
添加 Onclick 事件監聽器
使用 GetComponent() 方法獲取按鈕組件。然后使用 button.Onclick.AddListener(YourButtonClickMethod) 添加你想要的按鈕點擊方法。
您可以從以下鏈接(onClick 部分)獲取代碼示例: https ://docs.unity3d.com/Packages/[email protected]/api/UnityEngine.UI.Button.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/528952.html
標籤:C#unity3d
上一篇:縮小相機以便它可以看到所有物件
