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.