0
我想添加兩個不同的函數到godot的按鈕節點。我希望它在左鍵單擊時顯示一條消息,並使其附加的精靈在右鍵單擊時消失。有沒有辦法在gdscript中做到這一點?有沒有辦法將多個函數添加到godot的按鈕節點中
我想添加兩個不同的函數到godot的按鈕節點。我希望它在左鍵單擊時顯示一條消息,並使其附加的精靈在右鍵單擊時消失。有沒有辦法在gdscript中做到這一點?有沒有辦法將多個函數添加到godot的按鈕節點中
我不確定是否可以使用Button類區分左鍵單擊和右鍵單擊。但是,有多種簡單的方法讓精靈以您想要的方式進行反應。
我不確定您是否只是將按鈕添加爲點擊後作出反應的區域。如果是這樣,你也可以添加一個Area2D(或3d)和一個碰撞形狀到你的精靈。通過碰撞形狀,您可以將Area2D節點的「input_event」信號鏈接到Sprite腳本(或您在此場景中使用的任何腳本)。鏈接Signal最簡單的方法是通過編輯器左下角的Signal ribbon。
編輯器會自動創建一個新的功能,你可以編寫你想喜歡的任何行爲:
func _on_Area2D_input_event(viewport, event, shape_idx):
if event.is_action('left_click'):
print("Left click message")
elif event.is_action('right_click'):
self.hide() # hides the node which owns the script...
之前,你可以用你需要定義「left_click」和「right_click」的輸入地圖is_action功能根據編輯的喜好。通常,使用輸入映射而不是硬編碼所有按鍵和按鈕總是一個好主意。
我希望有幫助。
此致敬禮和開心編碼。
我認爲這個想法比我在做的更好,但是'event.is_action'會拋出一個錯誤,說它找不到標識符「event」。我不知道我是否有一個奇怪的Godot版本,因爲我在論壇上看到過這個版本,但它並沒有爲我工作過:/ –
很難在沒有看到代碼的情況下確定問題。你可以發佈一些片段嗎?事件「標識符」是_on_Area2D_input_event函數的參數。你是如何創建這個功能的?您是使用Godot編輯器還是隻是在腳本中輸入函數?另外,如果你認爲你有一個糟糕的Godot版本,只需下載一個新版本(當前的穩定版本是2.1.3),然後再試一次。 – magenulcus