meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| scripting:world:model [2024/07/13 05:54] – bibiboxs | scripting:world:model [2025/08/11 23:17] (当前版本) – bibiboxs | ||
|---|---|---|---|
| 行 16: | 行 16: | ||
| ## Event | ## Event | ||
| - | ### OnModelDamage( model, damage, from, type, isImmunity ) | + | ### OnModelDamage( model, damage, from, type, isImmunity, localHitPos |
| > 当模型对象被攻击时调用,**攻击检测应该优先考虑此事件**。 | > 当模型对象被攻击时调用,**攻击检测应该优先考虑此事件**。 | ||
| 行 103: | 行 103: | ||
| > 设置模型对象标签,此处的`Model.Tag`与基类`Entity.Tag`共用属性,并非单独的Tag属性。 | > 设置模型对象标签,此处的`Model.Tag`与基类`Entity.Tag`共用属性,并非单独的Tag属性。 | ||
| + | > | ||
| + | > 此属性设置为**非空值**将会同步提交到`TagList`(可使用API遍历),空值(默认)不会进行提交。 | ||
| ```javascript | ```javascript | ||
| 行 216: | 行 218: | ||
| ### model.Collision | ### model.Collision | ||
| - | > 设置模型对象是否存在碰撞逻辑,默认为`false`,通常情况下不需要进行修改。 | + | > 设置模型对象是否开启碰撞逻辑,默认为`true`。 |
| ```javascript | ```javascript | ||
| 行 306: | 行 308: | ||
| ### model.Emission | ### model.Emission | ||
| - | > 设置模型对象自发光强度,默认为`0.0`,如果`EmissionIntensity | + | > 设置模型对象**发光亮度倍数**,默认为`0.0`(原始亮度),如果希望增加亮度(或者高光)至少需要修改数值>1,反之则表示降低亮度。 |
| > | > | ||
| - | > **注意:这里的“自发光”仅指亮度渲染效果,实际光源渲染与`Light`有区别,不会有真正的光源照射效果。** | + | > **注意:这里的“高光”仅指亮度渲染效果,实际光源渲染与`Light`有区别,不会有真正的光源照射效果。** |
| ```javascript | ```javascript | ||
| 行 314: | 行 316: | ||
| ``` | ``` | ||
| + | ```javascript | ||
| + | model.Emission = 0.0; //Disable | ||
| + | model.Emission = 1.0; //Enable, but default(1*1=1) | ||
| + | model.Emission = 2.0; //Enable, brightness(1*2=2) | ||
| + | ``` | ||
| 行 335: | 行 342: | ||
| ### Model.CreateEffect() | ### Model.CreateEffect() | ||
| + | |||
| + | [note2] | ||
| + | 此方法在V0.8+被弃用。 | ||
| + | [/note] | ||
| > 生成一个新的**效果对象实例(粒子等)**(由此生成的全部为动态对象),效果索引参考**[《世界资源实例汇总——粒子效果表格》](reference/ | > 生成一个新的**效果对象实例(粒子等)**(由此生成的全部为动态对象),效果索引参考**[《世界资源实例汇总——粒子效果表格》](reference/ | ||
| 行 340: | 行 351: | ||
| > 不同索引代表的效果样式不同,效果周期可能是**循环播放、单次播放**等,==由此代码生成的**单次播放**对象会在播放结束后自动销毁,但**循环播放**的对象永远不会,直到手动`Remove()`对象==。 | > 不同索引代表的效果样式不同,效果周期可能是**循环播放、单次播放**等,==由此代码生成的**单次播放**对象会在播放结束后自动销毁,但**循环播放**的对象永远不会,直到手动`Remove()`对象==。 | ||
| > | > | ||
| - | > **注意:此方法相当于`Model.Create()`的扩展快速方法,帮助开发者快速生成效果对象,其原理仍然基于模型类。** | + | > **注意:此方法相当于`Model.Create()`的扩展快速方法,帮助开发者快速生成效果对象,其原理仍然基于`Model`类。** |
| + | |||
| + | [note3] | ||
| + | 注意:此方法在内部基于`Model+DynamicObject`实现,因此有**额外的性能开销**。 | ||
| + | |||
| + | 如果不需要关于`Model API`的相关功能,建议优先使用`World.CreateEffect() | Client.CreateEffect()`生成效果对象实例。 | ||
| + | [/note] | ||
| ```javascript | ```javascript | ||
| 行 511: | 行 528: | ||
| ```javascript | ```javascript | ||
| function model.RotateTo( euler: Vector, time: float ) | function model.RotateTo( euler: Vector, time: float ) | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### model.RotateAroundTo() | ||
| + | |||
| + | > 将当前模型对象过渡旋转到目标欧拉角(基于锚点)。 | ||
| + | > | ||
| + | > **(停止过渡:不填写任何参数,执行一次)** | ||
| + | |||
| + | ```javascript | ||
| + | function model.RotateAroundTo( pivot: Vector, euler: Vector, time: float ) | ||
| ``` | ``` | ||
| 行 524: | 行 553: | ||
| function model.ScaleTo( scale: Vector, time: float ) | function model.ScaleTo( scale: Vector, time: float ) | ||
| ``` | ``` | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||