跳转至

Curve

继承

Resource

简要描述

数学曲线。

描述

可以保存并重新用于其他对象的曲线。默认情况下,它在Y轴上的01之间,并且相对于0.5Y位置定位点。

成员

类型 属性名 默认值
int bake_resolution 100
float max_value 1.0
float min_value 0.0

方法

返回值类型 方法名称
int add_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: int = 0, right_mode: int = 0)
void bake()
void clean_dupes()
void clear_points()
int get_point_count() const
int get_point_left_mode(index: int) const
float get_point_left_tangent(index: int) const
Vector2 get_point_position(index: int) const
int get_point_right_mode(index: int) const
float get_point_right_tangent(index: int) const
float interpolate(offset: float) const
float interpolate_baked(offset: float)
void remove_point(index: int)
void set_point_left_mode(index: int, mode: int)
void set_point_left_tangent(index: int, tangent: float)
int set_point_offset(index: int, offset: float)
void set_point_right_mode(index: int, mode: int)
void set_point_right_tangent(index: int, tangent: float)
void set_point_value(index: int, y: float)

信号

  • range_changed

更改max_valuemin_value时发出。


枚举

enum TangentMode: - TANGENT_FREE = 0

该点这一侧的切线是用户定义的。

  • TANGENT_LINEAR = 1

曲线将计算出该点这一侧的切线,即切向邻近点的中点处的坡度。

  • TANGENT_MODE_COUNT = 2

可用切线模式的总数。


常量

成员说明

  • int bake_resolution
Default 100
setter set_bake_resolution(value)
getter get_bake_resolution
  • float max_value
Default 1.0
setter set_max_value(value)
getter get_max_value
  • float min_value
Default 0.0
setter set_min_value(value)
getter get_min_value

方法说明

  • add_point add_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: int = 0, right_mode: int = 0)

在曲线上添加一个点。对于每一边,如果*_modeTANGENT_LINEAR,则*_tangent角度(以度为单位)将使用曲线到相邻点的中点的斜率。如果*_mode设置为TANGENT_FREE,则允许自定义分配给*_tangent角度。


  • bake bake()

重新计算曲线的烘焙点缓存。


  • clean_dupes clean_dupes()

删除比其曲线上的相邻点近CMP_EPSILON(0.00001)个单位的点。


  • clear_points clear_points()

从曲线中删除所有点。


  • get_point_count get_point_count() const

返回描述曲线的点数。


  • get_point_left_mode get_point_left_mode(index: int) const

返回index处的点的左侧TangentMode


  • get_point_left_tangent get_point_left_tangent(index: int) const

返回index处的点的左正切角(以度为单位)。


  • get_point_position get_point_position(index: int) const

返回index处的点的曲线坐标。


  • get_point_right_mode get_point_right_mode(index: int) const

返回index处的点的右侧TangentMode


  • get_point_right_tangent get_point_right_tangent(index: int) const

返回index处的点的右正切角(以度为单位)。


  • interpolate interpolate(offset: float) const

返回将在曲线的X位置offset处存在的点的Y值。


  • interpolate_baked interpolate_baked(offset: float)

使用烘焙的缓存返回沿曲线的X位置offset处将存在的点的Y值。如果尚未烘焙曲线的点,则将其烘焙。


  • remove_point remove_point(index: int)

从曲线中删除index处的点。


  • set_point_left_mode set_point_left_mode(index: int, mode: int)

index处的点的左侧TangentMode设置为mode


  • set_point_left_tangent set_point_left_tangent(index: int, tangent: float)

index处的点的左正切角设置为tangent


  • set_point_offset set_point_offset(index: int, offset: float)

设置0.5的偏移量。


  • set_point_right_mode set_point_right_mode(index: int, mode: int)

index处的点的右侧TangentMode设置为mode


  • set_point_right_tangent set_point_right_tangent(index: int, tangent: float)

index处的点的右切角设置为tangent


  • set_point_value set_point_value(index: int, y: float)

将垂直位置y分配给index处的点。