forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Godot (http://forum.boolean.name/forumdisplay.php?f=181)
-   -   Как избавиться от наследования albedo_color? (http://forum.boolean.name/showthread.php?t=20944)

Tiranas 23.10.2021 14:58

Как избавиться от наследования albedo_color?
 
Как избавиться от наследования albedo_color после дублирования объекта?

Копирую объект (ключ), первый должен быть жёлтого цвета, второй красного, но оба создаются красными. Флаги при создании дубликатов выставил в минимум. Но цвет у первого продублированного ключа меняется с жёлтого на красный.

Код:

# Установить цвет ключа
func SetColorKey01(key01: Node, NumColor: int):
        var col
        match NumColor:
                1: col = Color(1, 1, 0)
                2: col = Color(1, 0, 0)
                3: col = Color(0, 1, 0)
                4: col = Color(0, 0, 1)
                5: col = Color(0, 1, 1)
                6: col = Color(1, 0, 1)
                7: col = Color(1, 1, 1)
                _: col = Color(0.7, 0.7, 0.7)
        key01.get_child(2).get_child(0).material.albedo_color = col
        key01.get_child(2).get_child(1).material.albedo_color = col
        key01.get_child(2).get_child(2).material.albedo_color = col
        key01.get_child(2).get_child(3).material.albedo_color = col
        key01.get_child(2).get_child(4).material.albedo_color = col
        key01.get_child(2).get_child(5).material.albedo_color = col

# металлическая дверь
func ABoxCreate1(y: int, x: int, numBox: int) -> Node:
        var newNode = $doorBox1.duplicate(7)
        newNode.translation = Vector3(x * 4, y * 4, -2)
        newNode.visible = true
        newNode.editor_description = "A" + str(numBox)
        newNode.get_child(0).editor_description = newNode.editor_description
        newNode.get_child(0).get_child(0).editor_description = newNode.editor_description
        newNode.get_child(0).get_child(1).editor_description = newNode.editor_description
        add_child(newNode)
        var key_add_01 = $Key01.duplicate(0)
        key_add_01.translation = Vector3(x * 4, (y + 1) * 4, 2)
        key_add_01.scale = Vector3(1.3, 1.3, 1.3)
        #key_add_01.bRotate = false
        SetColorKey01(key_add_01, numBox) # Установить цвет ключа
        key_add_01.visible = true
        add_child(key_add_01)
        #newNode.add_child(key_add_01)
        #var key01 = load("res://Key01.tscn").instance()
        return newNode
# Ключ к металлической двери
func aBoxCreate1(y: int, x: int, numBox: int) -> Node:
        var newNode = $KeySphere1.duplicate(7)
        #$KeySphere1.remove_child(newNode)
        newNode.translation = Vector3(x * 4, y * 4, 0)
        newNode.visible = true
        newNode.editor_description = "a" + str(numBox)
        newNode.get_child(0).editor_description = newNode.editor_description
        newNode.get_child(1).editor_description = newNode.editor_description
        add_child(newNode)
        var key_add_01 = $Key01.duplicate(4)
        #$Key01.remove_child(key_add_01)
        #key_add_01.get_parent().remove_child(key_add_01)
        key_add_01.translation = Vector3(0,0,0)
        SetColorKey01(key_add_01, numBox) # Установить цвет ключа
        key_add_01.visible = true
        #add_child(key_add_01)
        newNode.add_child(key_add_01)
        return newNode


ant0N 25.10.2021 14:09

Ответ: Как избавиться от наследования albedo_color?
 
Сори что не ответил, давно не заходил сюда. Вчера уже видел что на гд.ру тебе ответили на этот вопрос.
Если кратко, то нужно сделать материал локальным для сцены, так как по умолчанию все копии имеют ссылки на одни ресурсы

Tiranas 25.10.2021 23:16

Ответ: Как избавиться от наследования albedo_color?
 
Цитата:

Сообщение от ant0N (Сообщение 319069)
Сори что не ответил, давно не заходил сюда. Вчера уже видел что на гд.ру тебе ответили на этот вопрос.
Если кратко, то нужно сделать материал локальным для сцены, так как по умолчанию все копии имеют ссылки на одни ресурсы

Да, сначала сюда кинул, потом вижу тут глухо, забросил на ГД.
Но, всё равно, спасибо!


Часовой пояс GMT +4, время: 22:36.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot