Godot学习02 - 输入

Godot 是一款灵活且强大的游戏引擎,无论是 2D 还是 3D 游戏开发都游刃有余。在游戏中,玩家的输入是交互的核心,本篇文章将带你学习如何在 Godot 中高效处理各种输入事件。通过掌握这些技巧,你可以让角色控制、菜单操作和自定义交互更加流畅自然。


1.在Project / Project Settings中找到Input Map

2.在InputMap中可以点击Add添加Action,如果用过Unity或是UE,这些都很熟悉。但是Godot并不没有UE/Unity的映射方案叠加或者映射按键的临时修改功能,功能没有那么强大。

3.填写好Action后点击右侧+号,增加映射项。

4.填好映射项后可以保存退出InputMap。

5.编写代码测试输入

csharp 复制代码
using Godot;
using System;

public partial class NewScript : Node
{
	public override void _Process(double delta)
	{
		base._Process(delta);

		if (Input.IsActionPressed("left"))
		{
			GD.Print("Left!");
		}
	}
}

6.确保场景中有挂载该脚本的对象,运行测试,可以看见左侧控制台在按下对应按键后打印了Left!

7.但若想直接监测输入如何处理?Godot仍然有接口:

csharp 复制代码
using Godot;
using System;

public partial class NewScript : Node
{
	public override void _Process(double delta)
	{
		base._Process(delta);

		// 键盘输入
		if (Input.IsKeyPressed(Key.A))
		{
			GD.Print("Left!");
		}

		// 鼠标输入
        if (Input.IsMouseButtonPressed(MouseButton.Left))
        {
            GD.Print("Left!");
        }

		// 触发手柄震动
        Input.VibrateHandheld(durationMs: 500, amplitude: 1f);
    }
}
相关推荐
都叫我大帅哥9 分钟前
Spring @Transactional 注解完全指南
java·spring
Java成神之路-16 分钟前
G1 垃圾回收器 :SATB + TAMS核心机制深度解析
java·jvm
暗影凋落17 分钟前
CMake构建学习笔记-SQLite库的构建
笔记·学习·sqlite
前端工作日常34 分钟前
我学习到的JIT即时编译与机器码缓存失效
java·后端
带刺的坐椅41 分钟前
Solon 的 10 种 HTTP 服务器:改一行依赖,换一个引擎
java·solon·jetty·undertow·mcp-server·htttp
画面无声1 小时前
STM32的SPI通信原理与练习记录
c语言·stm32·单片机·嵌入式硬件·学习
xcLeigh1 小时前
Go入门:变量声明的五种方式详解
java·开发语言·golang
AI大模型-小华2 小时前
Codex 三方充值快速入门指南
java·前端·数据库·chatgpt·ai编程·codex·chatgpt pro
你有哈莫吗2 小时前
CMake构建学习笔记-iconv库的构建
笔记·学习
Mark_ZP2 小时前
【锁1】Synchronized vs ReentrantLock区别
java