Hints that a float property should be within an exponential range specified via the hint string [code]"min,max"[/code] or [code]"min,max,step"[/code]. The hint string can optionally include [code]"or_greater"[/code] and/or [code]"or_lesser"[/code] to allow manual input going respectively above the max or below the min values. Example: [code]"0.01,100,0.01,or_greater"[/code].
Hints that a float property should be within an exponential range specified via the hint string [code]"min,max"[/code] or [code]"min,max,step"[/code]. The hint string can optionally include [code]"or_greater"[/code] and/or [code]"or_lesser"[/code] to allow manual input going respectively above the max or below the min values. Example: [code]"0.01,100,0.01,or_greater"[/code].
- Hints that an integer, float or string property is an enumerated value to pick in a list specified via a hint string such as [code]"Hello,Something,Else"[/code].
+ Hints that an integer, float or string property is an enumerated value to pick in a list specified via a hint string.
+ The hint string is a comma separated list of names such as [code]"Hello,Something,Else"[/code]. For integer and float properties, the first name in the list has value 0, the next 1, and so on. Explicit values can also be specified by appending [code]:integer[/code] to the name, e.g. [code]"Zero,One,Three:3,Four,Six:6"[/code].
Hints that a float property should be edited via an exponential easing function. The hint string can include [code]"attenuation"[/code] to flip the curve horizontally and/or [code]"inout"[/code] to also include in/out easing.
Hints that a float property should be edited via an exponential easing function. The hint string can include [code]"attenuation"[/code] to flip the curve horizontally and/or [code]"inout"[/code] to also include in/out easing.
- Removes the first occurrence of a value from the array. To remove an element by index, use [method remove] instead.
+ Removes the first occurrence of a value from the array. If the value does not exist in the array, nothing happens. To remove an element by index, use [method remove] instead.
[b]Note:[/b] This method acts in-place and doesn't return a value.
[b]Note:[/b] This method acts in-place and doesn't return a value.
[b]Note:[/b] On large arrays, this method will be slower if the removed element is close to the beginning of the array (index 0). This is because all elements placed after the removed element have to be reindexed.
[b]Note:[/b] On large arrays, this method will be slower if the removed element is close to the beginning of the array (index 0). This is because all elements placed after the removed element have to be reindexed.
- If [code]enable[/code] is [code]true[/code], the node won't inherit its transform from parent canvas items.
+ If [code]enable[/code] is [code]true[/code], this [CanvasItem] will [i]not[/i] inherit its transform from parent [CanvasItem]s. Its draw order will also be changed to make it draw on top of other [CanvasItem]s that are not set as top-level. The [CanvasItem] will effectively act as if it was placed as a child of a bare [Node]. See also [method is_set_as_toplevel].
CollisionObject2D is the base class for 2D physics objects. It can hold any number of 2D collision [Shape2D]s. Each shape must be assigned to a [i]shape owner[/i]. The CollisionObject2D can have any number of shape owners. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the [code]shape_owner_*[/code] methods.
CollisionObject2D is the base class for 2D physics objects. It can hold any number of 2D collision [Shape2D]s. Each shape must be assigned to a [i]shape owner[/i]. The CollisionObject2D can have any number of shape owners. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the [code]shape_owner_*[/code] methods.
+ [b]Note:[/b] Only collisions between objects within the same canvas ([Viewport] canvas or [CanvasLayer]) are supported. The behavior of collisions between objects in different canvases is undefined.
- If [code]true[/code], forces vertex shading for all rendering. This can increase performance a lot, but also reduces quality immensely. Can be used to optimize performance on low-end mobile devices.
+ If [code]true[/code], forces vertex shading for all 3D [SpatialMaterial] and [ShaderMaterial] rendering. This can be used to improve performance on low-end mobile devices. The downside is that shading becomes much less accurate, with visible linear interpolation between vertices that are joined together. This can be compensated by ensuring meshes have a sufficient level of subdivision (but not too much, to avoid reducing performance). Some material features are also not supported when vertex shading is enabled.
+ See also [member SpatialMaterial.flags_vertex_lighting] which can be used to enable vertex shading on specific materials only.
+ [b]Note:[/b] This setting does not affect unshaded materials.
- Lower-end override for [member rendering/quality/shading/force_vertex_shading] on mobile devices, due to performance concerns or driver support.
+ Lower-end override for [member rendering/quality/shading/force_vertex_shading] on mobile devices, due to performance concerns or driver support. If lighting looks broken after exporting the project to a mobile platform, try disabling this setting.
If [code]true[/code], enables new physical light attenuation for [OmniLight]s and [SpotLight]s. This results in more realistic lighting appearance with a very small performance cost. When physical light attenuation is enabled, lights will appear to be darker as a result of the new attenuation formula. This can be compensated by adjusting the lights' energy or attenuation values.
If [code]true[/code], enables new physical light attenuation for [OmniLight]s and [SpotLight]s. This results in more realistic lighting appearance with a very small performance cost. When physical light attenuation is enabled, lights will appear to be darker as a result of the new attenuation formula. This can be compensated by adjusting the lights' energy or attenuation values.
If [code]true[/code], enables the "shadow to opacity" render mode where lighting modifies the alpha so shadowed areas are opaque and non-shadowed areas are transparent. Useful for overlaying shadows onto a camera feed in AR.
If [code]true[/code], enables the "shadow to opacity" render mode where lighting modifies the alpha so shadowed areas are opaque and non-shadowed areas are transparent. Useful for overlaying shadows onto a camera feed in AR.
- If [code]true[/code], lighting is calculated per vertex rather than per pixel. This may increase performance on low-end devices.
+ If [code]true[/code], lighting is calculated per vertex rather than per pixel. This may increase performance on low-end devices, especially for meshes with a lower polygon count. The downside is that shading becomes much less accurate, with visible linear interpolation between vertices that are joined together. This can be compensated by ensuring meshes have a sufficient level of subdivision (but not too much, to avoid reducing performance). Some material features are also not supported when vertex shading is enabled.
+ See also [member ProjectSettings.rendering/quality/shading/force_vertex_shading] which can globally enable vertex shading on all materials.
+ [b]Note:[/b] By default, vertex shading is enforced on mobile platforms by [member ProjectSettings.rendering/quality/shading/force_vertex_shading]'s [code]mobile[/code] override.
+ [b]Note:[/b] [member flags_vertex_lighting] has no effect if [member flags_unshaded] is [code]true[/code].
Returns [code]true[/code] if this string contains a valid float. This is inclusive of integers, and also supports exponents:
Returns [code]true[/code] if this string contains a valid float. This is inclusive of integers, and also supports exponents:
[codeblock]
[codeblock]
- print("1.7".is_valid_float()) # Prints "true"
- print("24".is_valid_float()) # Prints "true"
- print("7e3".is_valid_float()) # Prints "true"
- print("24".is_valid_float()) # Prints "true"
- print("Hello".is_valid_float()) # Prints "false"
+ print("1.7".is_valid_float()) # Prints "True"
+ print("24".is_valid_float()) # Prints "True"
+ print("7e3".is_valid_float()) # Prints "True"
+ print("Hello".is_valid_float()) # Prints "False"
[/codeblock]
[/codeblock]
</description>
</description>
</method>
</method>
@@ -465,9 +464,9 @@
<description>
<description>
Returns [code]true[/code] if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores ([code]_[/code]) and the first character may not be a digit.
Returns [code]true[/code] if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores ([code]_[/code]) and the first character may not be a digit.
[codeblock]
[codeblock]
- print("good_ident_1".is_valid_identifier()) # Prints "true"
- print("1st_bad_ident".is_valid_identifier()) # Prints "false"
- print("bad_ident_#2".is_valid_identifier()) # Prints "false"
+ print("good_ident_1".is_valid_identifier()) # Prints "True"
+ print("1st_bad_ident".is_valid_identifier()) # Prints "False"
+ print("bad_ident_#2".is_valid_identifier()) # Prints "False"
[/codeblock]
[/codeblock]
</description>
</description>
</method>
</method>
@@ -476,11 +475,11 @@
<description>
<description>
Returns [code]true[/code] if this string contains a valid integer.
Returns [code]true[/code] if this string contains a valid integer.
[codeblock]
[codeblock]
- print("7".is_valid_int()) # Prints "true"
- print("14.6".is_valid_int()) # Prints "false"
- print("L".is_valid_int()) # Prints "false"
- print("+3".is_valid_int()) # Prints "true"
- print("-12".is_valid_int()) # Prints "true"
+ print("7".is_valid_int()) # Prints "True"
+ print("14.6".is_valid_int()) # Prints "False"
+ print("L".is_valid_int()) # Prints "False"
+ print("+3".is_valid_int()) # Prints "True"
+ print("-12".is_valid_int()) # Prints "True"
[/codeblock]
[/codeblock]
</description>
</description>
</method>
</method>
@@ -664,8 +663,8 @@
var some_string = "One,Two,Three,Four"
var some_string = "One,Two,Three,Four"
var some_array = some_string.rsplit(",", true, 1)
var some_array = some_string.rsplit(",", true, 1)
print(some_array.size()) # Prints 2
print(some_array.size()) # Prints 2
- print(some_array[0]) # Prints "Four"
- print(some_array[1]) # Prints "Three,Two,One"
+ print(some_array[0]) # Prints "One,Two,Three"
+ print(some_array[1]) # Prints "Four"
[/codeblock]
[/codeblock]
</description>
</description>
</method>
</method>
@@ -705,7 +704,7 @@
<return type="float" />
<return type="float" />
<argument index="0" name="text" type="String" />
<argument index="0" name="text" type="String" />
<description>
<description>
- Returns the similarity index ([url=https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient]Sorensen-Dice coefficient[/url]) this string compared to another. 1.0 means totally similar and 0.0 means totally dissimilar.
+ Returns the similarity index ([url=https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient]Sorensen-Dice coefficient[/url]) of this string compared to another. A result of 1.0 means totally similar, while 0.0 means totally dissimilar.