【问题标题】:Play animation without invoking setget?在不调用 setget 的情况下播放动画?
【发布时间】:2022-10-06 05:45:50
【问题描述】:

我正在尝试播放自定义属性的动画,但我不想调用 setget 函数

就像在这种情况下:

tool
extends Node2D

export(int) var example=0 setget set_example

func set_example(val):
    print(\"Here!\")
    example=val

当我播放动画时,我只想设置 example 值但不调用 set_example()

这是可能的吗?

    标签: godot gdscript


    【解决方案1】:

    您只能避免使用同一类的 setter(不使用self)。因此,您可以创建第二种方法来设置变量,然后在外部使用第二种方法。

    tool
    extends Node2D
    
    export(int) var example=0 setget set_example
    
    func set_example(val):
        print("Here!")
        example=val
    
    func set_example_alt(val):
        example=val # The setter is not triggered here
    

    笔记:Godot 4 beta 中的等效方法不起作用。


    如果它必须是一个属性,那么您可以有两个属性使用相同的支持变量:

    tool
    extends Node2D
    
    export(int) var example=0 setget set_example
    
    export(int) var example_alt=0 setget set_example_alt, get_example_alt
    
    func set_example(val):
        print("Here!")
        example=val
    
    func get_example_alt():
        return example
    
    func set_example_alt(val):
        example=val
    

    这里没有使用变量example_alt。相反,当另一个脚本(或编辑器)使用example_alt 时,它将获取和设置example,但不会触发设置器。

    我看到你有一个相关的问题:Avoid invoking setget function on starting up。我将在那里进一步扩展。

    【讨论】:

      猜你喜欢
      • 2013-11-28
      • 2016-12-24
      • 2022-01-15
      • 1970-01-01
      • 2022-01-23
      • 2015-12-22
      • 2014-04-26
      • 2018-10-25
      • 1970-01-01
      相关资源
      最近更新 更多