Godot 简单可交互组件(自学存档)

B站影视 2025-02-06 00:11 2

摘要:在StaticBody2D(改名为Door)下添加AnimatedSprite2D,CollisionShape,Area2D子节点,Area2D子节点改名为InteractionComponent,并在其下添加CollisShap2D节点。

在StaticBody2D(改名为Door)下添加AnimatedSprite2D,CollisionShape,Area2D子节点,Area2D子节点改名为InteractionComponent,并在其下添加CollisShap2D节点。

在检查器内点击动画,右键点击精灵帧,选择新建SpriteFrames,随后选择从精灵表中添加帧

在CollisionShape2D中选择Door的碰撞形状

在InteractableComponent/CollisionShape2D中选择交互范围

注意将InteractableComponent的碰撞层设置在自定义名称为Interactable层,碰撞掩码自定义名称设置为Player,Door碰撞层设置为Ground,碰撞掩码设置为Ground,玩家碰撞层设为Player,碰撞掩码设置为Ground

其中先申明InteractableComponent作为一个类方便后续拓展。

extends Area2D类似于申明创建一个基于Area2D的特殊区域,这个特殊区域会继承原来Area2D的基本功能。

创建两个信号:激活状态和未激活状态

在节点中选择bodyentered和bodyexited信号,当bodyentered信号激活时激活interactable_activated信号,bodyexited信号激活则激活interactable_deactivated信号。

在Door中添加脚本:

使用@onready,使变量能够在func _read中被调用,注意在此场景树下存在两个CollisionShape2D,但在这里指的是Door的第一子节点,如果需要表示InteractableComponent下的CollisionShape2D,需要这样表示:InteractableComponent/CollisionShape2D。在_ready中将InteractableComponent中的两个信号与函数func on_interactable_activated与func on_interactable_deactivated连接,当信号触发则执行对应的函数。

来源:爱娃爱健身的灵犀爸

相关推荐