meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
scripting:world:model [2024/07/13 05:30] – bibiboxs | scripting:world:model [2025/05/25 15:56] (当前版本) – 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 | ||
行 546: | 行 541: | ||
function model.ScaleTo( scale: Vector, time: float ) | function model.ScaleTo( scale: Vector, time: float ) | ||
``` | ``` | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||