Skip to content
MaterialSlot

玩法 / MaterialSlot

MaterialSlot Class

Model插槽,执行材质相关操作


  • model 材质插槽引用的Model

  • index 材质插槽的索引

  • materialAssetID 材质插槽使用的资源

  • color 材质插槽的颜色

  • resetColor 方法重置材质插槽颜色

  • resetMaterial 方法重置材质资源

  • getCustomMaterial 方法获取自定义材质

使用示例:创建一个名为"ModelExample"的脚本,放置在对象栏中,打开脚本,输入以下代码保存,运行游戏,你可以通过F1键,在场景中动态生成模型并模拟物理。代码如下:
ts
@Component
export default class ModelExample extends Script {
    //当脚本被实例后,会在第一帧更新前调用此函数
    protected async onStart(): Promise<void> {
        if(SystemUtil.isClient())
            {
                InputUtil.onKeyDown(Keys.F1,()=>{
                    // F1键 通知服务器执行事件
                    mw.Event.dispatchToServer("Model");
                });
            }
        if(SystemUtil.isServer()){
            mw.Event.addClientListener("Model",()=>{
                let box = GameObject.spawn("197386",{
                    transform:new Transform(new Vector(500,0,100),new Rotation(0,0,0),new Vector(1,1,1)),
                    replicates:true
                }) as Model;
                // 设置透明度
                box.opacity = 0.8;
                // 设置颜色
                box.color = new mw.LinearColor(1.0,0.0,0.0,0.0);

                // 获取第0个插槽
                let matSlot0 = box.getMaterialSlot(0);
                // 设置材质插槽颜色
                matSlot0.color = new mw.LinearColor(1.0,0.0,0.0,0.0);
                // 重置颜色
                matSlot0.resetColor();
                // 设置材质插槽材质资源
                matSlot0.materialAssetID = "128569";
                // 重置插槽材质资源
                matSlot0.resetMaterial();
                // 获取插槽自定义材质
                let customMat = matSlot0.getCustomMaterial();
            });
        }
    }
}
@Component
export default class ModelExample extends Script {
    //当脚本被实例后,会在第一帧更新前调用此函数
    protected async onStart(): Promise<void> {
        if(SystemUtil.isClient())
            {
                InputUtil.onKeyDown(Keys.F1,()=>{
                    // F1键 通知服务器执行事件
                    mw.Event.dispatchToServer("Model");
                });
            }
        if(SystemUtil.isServer()){
            mw.Event.addClientListener("Model",()=>{
                let box = GameObject.spawn("197386",{
                    transform:new Transform(new Vector(500,0,100),new Rotation(0,0,0),new Vector(1,1,1)),
                    replicates:true
                }) as Model;
                // 设置透明度
                box.opacity = 0.8;
                // 设置颜色
                box.color = new mw.LinearColor(1.0,0.0,0.0,0.0);

                // 获取第0个插槽
                let matSlot0 = box.getMaterialSlot(0);
                // 设置材质插槽颜色
                matSlot0.color = new mw.LinearColor(1.0,0.0,0.0,0.0);
                // 重置颜色
                matSlot0.resetColor();
                // 设置材质插槽材质资源
                matSlot0.materialAssetID = "128569";
                // 重置插槽材质资源
                matSlot0.resetMaterial();
                // 获取插槽自定义材质
                let customMat = matSlot0.getCustomMaterial();
            });
        }
    }
}

Table of contents

Accessors

color(): LinearColor
插槽的颜色
index(): number
插槽的索引,只读
materialAssetID(): string
插槽的资源ID
model(): Model
插槽的Model,只读

Methods

getCustomMaterial(): MaterialInstance other
获取自定义材质
resetColor(): void
重置插槽颜色
resetMaterial(): void

Parameters

indexnumber
modelModel

Accessors

color

get color(): LinearColor

set color(value): void

插槽的颜色

Returns

LinearColor获取插槽颜色

设置插槽的颜色

Parameters

value LinearColor插槽颜色

index

get index(): number

插槽的索引,只读

Returns

number获取插槽的索引

materialAssetID

get materialAssetID(): string

set materialAssetID(value): void

插槽的资源ID

Returns

string获取插槽资源ID

设置插槽的资源

Parameters

value string插槽资源ID

model

get model(): Model

插槽的Model,只读

Returns

Model获取插槽的Model

Methods

getCustomMaterial

getCustomMaterial(): MaterialInstance other

获取自定义材质

Returns

MaterialInstance返回自定义材质实例

网络材质将返回空


resetColor

resetColor(): void

重置插槽颜色


resetMaterial

resetMaterial(): void