My script sets this value in editor. How can I keep the the changes when saving the scene?

class Anchor:
	var offset: Vector3
	var connected: Node3D
	var end: bool

var anchors: Array[Anchor]

I found this issue, so I tried fiddling with _get_property_list(), but that didn't work. It also doesn't seem that I can export the var.

Thanks

    • Bezier@suppo.fiOP
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      Thanks for that link, I now have learned why it didn't originally work (and that other features like reference counting aren't employed by default!).

      The solution, if anyone needs this in the future:

      # Separate file
      extends Resource
      class_name Anchor
      
      @export var offset: Vector3
      @export var connected: Node3D
      @export var end: bool
      

      It adds namespace pollution, but I'll deal with it by prefixing it with the original script's class.

      • Silicon Dryad@eldritch.cafe
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        @Bezier yeah it's good to know about the differences between Object and RefCounted when you're making custom data containers.

        Personally, I've been suffixing my custom/"game object" resources with "-Rs", as in I have PlayerRs, FileRs, DownloadRs, etc.

        The namespace pollution is definitely part of the trade-off from just preloading wherever you need the class.