TalismanChet
@TalismanChet
Лицо зла

Почему не работают порталы в Godot?

Я пытался сделать порталы, как в Portal, в Годо, но они не работают.
Я пытался выявить причину, но провалился.

вот код (крепиться к каждому порталу):
# extends
extends Spatial
class_name PortalMain


# exports
export var second_viewport: NodePath
export var second_camera: NodePath
export var teleport_light: bool = true
export var teleport_objects: bool = true
export var pickable: bool = false
export var teleportable: bool = false


# system functions
func is_pickable(): return pickable
func is_teleportable(): return teleportable


# engine functions
func _ready():
	return
#
func _process(_delta):
	if teleport_light:
		set_current_viewport(get_opposite_image())
		pass
	return
#
func _physics_process(_delta):
	return
#
func _input(_event):
	return
#


# custom functions
func get_opposite_image():
	var img = get_node(second_camera).get_viewport().get_texture().get_data()
	var tex = ImageTexture.new()
	tex.create_from_image(img)
	return tex
#
func set_opposite_viewport(texture: ImageTexture):
	get_node(second_viewport).material.albedo_texture = texture
	return
#
func get_current_image():
	var img = $camera.get_viewport().get_texture().get_data()
	var tex = ImageTexture.new()
	tex.create_from_image(img)
	return tex
#
func set_current_viewport(texture: ImageTexture):
	$viewport.material.albedo_texture = texture
	return


устроены они так:
63333c99ac3a3427714529.png

во входных данных меш и камера друг друга.
работает это вот так:
63333cc7e29df990280129.png

Единственное, что я заметил, так это то, что порталы отображают картинку из камеры игрока и дальше их рекурсит.

туториал, который я использовал

застрял на первом же пункте

Сделать эти порталы казалось такой простой задачей, а впереди ещё гора работы :(
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы