2017-07-06 64 views

回答

0

我不確定是否可以使用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功能根據編輯的喜好。通常,使用輸入映射而不是硬編碼所有按鍵和按鈕總是一個好主意。

我希望有幫助。

此致敬禮和開心編碼。

+0

我認爲這個想法比我在做的更好,但是'event.is_action'會拋出一個錯誤,說它找不到標識符「event」。我不知道我是否有一個奇怪的Godot版本,因爲我在論壇上看到過這個版本,但它並沒有爲我工作過:/ –

+0

很難在沒有看到代碼的情況下確定問題。你可以發佈一些片段嗎?事件「標識符」是_on_Area2D_input_event函數的參數。你是如何創建這個功能的?您是使用Godot編輯器還是隻是在腳本中輸入函數?另外,如果你認爲你有一個糟糕的Godot版本,只需下載一個新版本(當前的穩定版本是2.1.3),然後再試一次。 – magenulcus

相關問題