meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
scripting:native:misc [2025/08/27 02:16] – 移除 - 外部编辑 (Unknown date) 127.0.0.1scripting:native:misc [2025/08/28 00:46] (当前版本) bibiboxs
行 1: 行 1:
 +<markdown>
 +# Native/Misc
  
 +> 此类是一个功能组合类,可能包含开发阶段会用到的功能合集。
 +
 +
 +
 +## Static Function
 +
 +### Misc.Lerp()
 +
 +> 执行一段`Lerp`差值计算。
 +
 +```javascript
 +function Lerp( a: float, b: float, t: float ): float
 +```
 +
 +
 +
 +### Misc.LerpAngle()
 +
 +> 执行一段`LerpAngle`差值计算,与普通Lerp不同的是,这将自动计算并重置360度时的角度信息。
 +
 +```javascript
 +function LerpAngle( a: float, b: float, t: float ): float
 +```
 +
 +
 +
 +### Misc.LerpVector()
 +
 +> 执行一段`LerpVector`差值计算。
 +
 +```javascript
 +function LerpVector( a: Vector, b: Vector, t: float ): Vector
 +```
 +
 +
 +
 +### Misc.LerpColor()
 +
 +> 执行一段`LerpColor`差值计算。
 +
 +```javascript
 +function LerpColor( a: Color, b: Color, t: float ): Color
 +```
 +
 +
 +
 +### Misc.Clamp()
 +
 +> 将一个数值限制在指定大小范围内。
 +
 +```javascript
 +function Clamp( value: float, min: float, max: float ): float
 +```
 +
 +
 +
 +### Misc.HEXToColor()
 +
 +> 将一段HEX格式颜色代码转换为颜色对象(`#FFFFFF`)。
 +
 +```javascript
 +function HEXToColor( hex: string ): Color
 +```
 +
 +
 +
 +### Misc.ColorToHEX()
 +
 +> 将颜色对象转换为HEX格式颜色代码(`#FFFFFF`)。
 +>
 +> `hasAlpha`参数决定是否包含后面2位透明度。
 +
 +```javascript
 +function ColorToHEX( color: Color, hasAlpha: bool = false ): string
 +```
 +
 +
 +
 +### Misc.GetModelByPropID()
 +
 +> 获取指定道具使用的模型ID,如不存在则返回`-1`。
 +
 +```javascript
 +function GetModelByPropID( prop: int ): int
 +```
 +
 +
 +
 +### Misc.GetRandomPropID()
 +
 +> 获取随机道具ID(可根据[道具类型](reference/instances "道具类型")筛选,默认参数不筛选`-1`),如不存在则返回`-1`。
 +
 +```javascript
 +function GetRandomPropID( type: int = -1 ): int
 +```
 +
 +
 +
 +### Misc.GetPropLevelColor()
 +
 +> 获取**引擎内置**道具等级颜色。
 +
 +```javascript
 +function GetPropLevelColor( level: int ): Color
 +```
 +
 +
 +
 +### Misc.GetModelBoundSize()
 +
 +> 获取指定模型的标准包围尺寸,如不存在则返回`-1`。
 +
 +```javascript
 +function GetModelBoundSize( model: int ): float
 +```
 +
 +
 +
 +### Misc.GetPropSourceData()
 +
 +> 获取**指定游戏道具**原始数据,如果未被重写过,则返回引擎原始数据。
 +
 +```javascript
 +function GetPropSourceData( prop: int, keyPath: string ): any
 +```
 +
 +
 +
 +### Misc.GetVehicleSourceData()
 +
 +> 获取**指定游戏载具**原始数据,如果未被重写过,则返回引擎原始数据。
 +
 +```javascript
 +function GetVehicleSourceData( vehicle: int, keyPath: string ): any
 +```
 +
 +
 +
 +### Misc.SnapVector()
 +
 +> 获取按比例**对齐**后的`Vector`坐标。
 +
 +```javascript
 +function SnapVector( input: Vector, snapValue: float ): Vector
 +```
 +
 +
 +
 +### Misc.SnapVector2()
 +
 +> 获取按比例**对齐**后的`Vector2`坐标。
 +
 +```javascript
 +function SnapVector2( input: Vector, snapValue: float ): Vector2
 +```
 +
 +
 +
 +### Misc.SnapVectorAxis()
 +
 +> 获取按比例**对齐**后的`Vector`坐标(按轴分配)。
 +
 +```javascript
 +function SnapVectorAxis( input: Vector, snapValue: Vector ): Vector
 +```
 +
 +
 +
 +### Misc.SnapVector2Axis()
 +
 +> 获取按比例**对齐**后的`Vector2`坐标(按轴分配)。
 +
 +```javascript
 +function SnapVector2Axis( input: Vector2, snapValue: Vector2 ): Vector2
 +```
 +
 +
 +
 +### Misc.VectorToString()
 +
 +> 序列化`Vector`到字符串格式(`x|y|z`)。
 +
 +```javascript
 +function VectorToString( input: Vector ): string
 +```
 +
 +
 +
 +### Misc.StringToVector()
 +
 +> 反序列化字符串格式(`x|y|z`)到`Vector`。
 +
 +```javascript
 +function StringToVector( input: string ): Vector
 +```
 +
 +
 +
 +### Misc.Vector2ToString()
 +
 +> 序列化`Vector2`到字符串格式(`x|y`)。
 +
 +```javascript
 +function Vector2ToString( input: Vector2 ): string
 +```
 +
 +
 +
 +### Misc.StringToVector2()
 +
 +> 反序列化字符串格式(`x|y`)到`Vector2`。
 +
 +```javascript
 +function StringToVector2( input: string ): Vector2
 +```
 +
 +
 +
 +### Misc.InPoly()
 +
 +> 获取某个点是否在多边形点范围内(X\Z是否在某片2D形状范围内)。
 +>
 +> 注意:此方法判断坐标系只需要X\Z轴,Y轴数值可以忽略(最低要求输入3个多边形点,最多支持8个多边形点验证)。
 +
 +```javascript
 +function InPoly( pos: Vector, p1: Vector, p2: Vector, p3: Vector, p4: Vector = null, p5: Vector = null, p6: Vector = null, p7: Vector = null, p8: Vector = null ): bool
 +```
 +```javascript
 +DLog(InPoly(Vector(0, 0, 0), Vector(-10, 0, -10), Vector(-10, 0, 10), Vector(10, 0, 10), Vector(10, 0, -10))); //返回true
 +```
 +
 +
 +
 +### Misc.Distance()
 +
 +> 获取两个坐标点之间的**距离**,单位是沙盘引擎世界距离。
 +>
 +> 注意:此方法将获得**精准**的距离数据,如果**大量调用**可能会**影响性能**,考虑使用距离平方(`DistanceSqrt`)。
 +
 +```javascript
 +function Distance( pos: Vector, pos2: Vector ): float
 +```
 +
 +
 +
 +### Misc.DistanceSqrt()
 +
 +> 获取两个坐标点之间的**距离平方**。
 +>
 +> 注意:此方法将获得**距离平方**,应该使用`Distance * Distance`作为最终距离判断。
 +
 +```javascript
 +function DistanceSqrt( pos: Vector, pos2: Vector ): float
 +```
 +
 +
 +
 +### Misc.GreaterDistance()
 +
 +> 获取**两个坐标点之间距离**是否**大于目标距离。**
 +>
 +> 注意:此方法内部使用**距离平方**运算,距离可能不会特别精准(但性能更高),==可以按照常规`Distance`方式使用。==
 +
 +```javascript
 +function GreaterDistance( pos: Vector, pos2: Vector, distance: float ): bool
 +```
 +
 +
 +
 +### Misc.IsUBBText()
 +
 +> 检查文本是否包含**UBB\HTML**格式。
 +
 +> 注意:此方法只会检查受引擎支持的标签(例如:`img | color | size`等,不会检查自定义标签)。
 +
 +```javascript
 +function IsUBBText( text: string ): bool
 +```
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +</markdown>