You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm creating a piano game, therefore I thought about creating 1 base scene for 1 piano "Key"(parent) and 2 children keys "KeyWhite" & "KeyBlack" (as inherited scenes), I also BUILD THE LEVEL Map (piano with 24 keys), ONLY AFTER THAT I created a script for the "Key"(parent) but I noticed 2 situations in the instanciated child keys:
They DO NOT recognize that the parent has a script !!!
but creating new Instanciations, they DO recognize the parent's script (no problem at all).
Since I can't find a way to Force Refresh the OLD instances in the Level, I ended up REBUILDing THE ENTIRE LEVEL .... otherwise I would need to write the scripts BEFORE the creation of the Level
Steps to reproduce
1- create scene "Map1"
2- create scene "Key" (parent scene)
3- create inherited scene "KeyWhite"
4- create inherited scene "KeyBlack"
5- create instance of "KeyWhite" inside "Map1"
6- create a SCRIPT attached to "Key" (parent)
7- create instance of "KeyBlack" inside "Map1"
8- here is the problem: "KeyWhite" does NOT have the script attached, conversely "KeyBlack" HAS it, a way to force update is needed here
The problem seems to be that property changes don't propagate through more than 1 level of inheritance.
If you have: Node C inherits from Node B inherits from Node A, changing a property inside of Node A will only update the new property for Node B, not for Node C. Example:
2021-07-22_22-22-28.mp4
EDIT: This only happens if you have C open while editting A, otherwise it works fine.
When you changed Key's script, it only updated the new script for KeyBlack and KeyWhite's scenes, it didn't update for the instances of KeyBlack and KeyWhite.
You can fix this manually by reverting the script property for the instances of KeyBlack and KeyWhite:
This issue occurs in v4.0.dev.custom_build [5156703] as well.
Godot version
3.3.stable
System information
Windows 10, Nvidia GTX970
Issue description
I'm creating a piano game, therefore I thought about creating 1 base scene for 1 piano "Key"(parent) and 2 children keys "KeyWhite" & "KeyBlack" (as inherited scenes), I also BUILD THE LEVEL Map (piano with 24 keys), ONLY AFTER THAT I created a script for the "Key"(parent) but I noticed 2 situations in the instanciated child keys:
Since I can't find a way to Force Refresh the OLD instances in the Level, I ended up REBUILDing THE ENTIRE LEVEL ....
otherwise I would need to write the scripts BEFORE the creation of the Level
Steps to reproduce
1- create scene "Map1"
![TheProblem](https://user-images.githubusercontent.com/10149862/126729495-3925830c-b6aa-4825-86ee-5ce5aea9ee7f.png)
2- create scene "Key" (parent scene)
3- create inherited scene "KeyWhite"
4- create inherited scene "KeyBlack"
5- create instance of "KeyWhite" inside "Map1"
6- create a SCRIPT attached to "Key" (parent)
7- create instance of "KeyBlack" inside "Map1"
8- here is the problem: "KeyWhite" does NOT have the script attached, conversely "KeyBlack" HAS it, a way to force update is needed here
Minimal reproduction project
Piano03.zip
The text was updated successfully, but these errors were encountered: