meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| scripting:world:model [2024/07/13 05:30] – 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 | ||
| 行 280: | 行 282: | ||
| ```javascript | ```javascript | ||
| model.Intensity = 0.0; //float | model.Intensity = 0.0; //float | ||
| - | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### model.IsShine | ||
| - | |||
| - | > 设置模型对象明亮模式(始终保持亮度,不受光照及阴影影响)。 | ||
| - | > | ||
| - | > **注意:此选项会和`Emission`模式冲突,两者只能同时生效一个,自发光优先。** | ||
| - | |||
| - | ```javascript | ||
| - | model.IsShine = false; //bool | ||
| ``` | ``` | ||
| 行 316: | 行 306: | ||
| - | ### model.EmissionIntensity | + | ### model.Emission |
| - | > 设置模型对象自发光强度,默认为`0.0`,如果`EmissionIntensity | + | > 设置模型对象**发光亮度倍数**,默认为`0.0`(原始亮度),如果希望增加亮度(或者高光)至少需要修改数值>1,反之则表示降低亮度。 |
| > | > | ||
| - | > **注意:低配玩家可能不会启用附带的光源效果,此选项会和`IsShine`模式冲突,两者只能同时生效一个,自发光优先。** | + | > **注意:这里的“高光”仅指亮度渲染效果,实际光源渲染与`Light`有区别,不会有真正的光源照射效果。** |
| ```javascript | ```javascript | ||
| - | model.EmissionIntensity | + | model.Emission |
| ``` | ``` | ||
| - | |||
| - | |||
| - | |||
| - | ### model.EmissionColor | ||
| - | |||
| - | > 设置模型对象自发光颜色,默认为白色`Color(255, | ||
| ```javascript | ```javascript | ||
| - | model.EmissionColor | + | model.Emission |
| + | model.Emission = 1.0; //Enable, but default(1*1=1) | ||
| + | model.Emission = 2.0; //Enable, brightness(1*2=2) | ||
| ``` | ``` | ||
| - | |||
| 行 357: | 行 342: | ||
| ### Model.CreateEffect() | ### Model.CreateEffect() | ||
| + | |||
| + | [note2] | ||
| + | 此方法在V0.8+被弃用。 | ||
| + | [/note] | ||
| > 生成一个新的**效果对象实例(粒子等)**(由此生成的全部为动态对象),效果索引参考**[《世界资源实例汇总——粒子效果表格》](reference/ | > 生成一个新的**效果对象实例(粒子等)**(由此生成的全部为动态对象),效果索引参考**[《世界资源实例汇总——粒子效果表格》](reference/ | ||
| 行 362: | 行 351: | ||
| > 不同索引代表的效果样式不同,效果周期可能是**循环播放、单次播放**等,==由此代码生成的**单次播放**对象会在播放结束后自动销毁,但**循环播放**的对象永远不会,直到手动`Remove()`对象==。 | > 不同索引代表的效果样式不同,效果周期可能是**循环播放、单次播放**等,==由此代码生成的**单次播放**对象会在播放结束后自动销毁,但**循环播放**的对象永远不会,直到手动`Remove()`对象==。 | ||
| > | > | ||
| - | > **注意:此方法相当于`Model.Create()`的扩展快速方法,帮助开发者快速生成效果对象,其原理仍然基于模型类。** | + | > **注意:此方法相当于`Model.Create()`的扩展快速方法,帮助开发者快速生成效果对象,其原理仍然基于`Model`类。** |
| + | |||
| + | [note3] | ||
| + | 注意:此方法在内部基于`Model+DynamicObject`实现,因此有**额外的性能开销**。 | ||
| + | |||
| + | 如果不需要关于`Model API`的相关功能,建议优先使用`World.CreateEffect() | Client.CreateEffect()`生成效果对象实例。 | ||
| + | [/note] | ||
| ```javascript | ```javascript | ||
| 行 533: | 行 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 ) | ||
| ``` | ``` | ||
| 行 546: | 行 553: | ||
| function model.ScaleTo( scale: Vector, time: float ) | function model.ScaleTo( scale: Vector, time: float ) | ||
| ``` | ``` | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||