玩法 / MaterialInstance
MaterialInstance Class
材质实例类
使用示例:创建一个名为"MaterialExample"的脚本,把脚本挂载到一个模型对象下,打开脚本,输入以下代码保存,运行游戏,你将在场景中看到动态设置材质的效果。代码如下:ts
@Component
export default class MaterialExample extends Script {
protected onStart(): void {
if (this.gameObject instanceof mw.Model){
// 获取当前Mesh上的材质
const mis = this.gameObject.getMaterialInstance();
mis.forEach(mi => {
// 获取当前材质的浮点参数
let aspns = mi.getAllScalarParameterName();
aspns.forEach(aspn => {
// 设置当前材质的浮点参数
mi.setScalarParameterValue(aspn, 1);
});
// 获取当前材质的颜色参数
let avpns = mi.getAllVectorParameterName();
avpns.forEach(avpn => {
// 设置当前材质的颜色参数
mi.setVectorParameterValue(avpn, LinearColor.red);
});
// 获取当前材质的贴图参数
let atpns = mi.getAllTextureParameterName();
atpns.forEach(atpn => {
// 设置当前材质的贴图参数,确保设置的资源被加载了
mi.setTextureParameterValue(atpn, "26512");
});
});
}
}
}
@Component
export default class MaterialExample extends Script {
protected onStart(): void {
if (this.gameObject instanceof mw.Model){
// 获取当前Mesh上的材质
const mis = this.gameObject.getMaterialInstance();
mis.forEach(mi => {
// 获取当前材质的浮点参数
let aspns = mi.getAllScalarParameterName();
aspns.forEach(aspn => {
// 设置当前材质的浮点参数
mi.setScalarParameterValue(aspn, 1);
});
// 获取当前材质的颜色参数
let avpns = mi.getAllVectorParameterName();
avpns.forEach(avpn => {
// 设置当前材质的颜色参数
mi.setVectorParameterValue(avpn, LinearColor.red);
});
// 获取当前材质的贴图参数
let atpns = mi.getAllTextureParameterName();
atpns.forEach(atpn => {
// 设置当前材质的贴图参数,确保设置的资源被加载了
mi.setTextureParameterValue(atpn, "26512");
});
});
}
}
}
Table of contents
Methods
getAllScalarParameterName(): string [] |
---|
返回所有的浮点材质参数 |
getAllTextureParameterName(): string [] |
返回所有的贴图材质参数 |
getAllVectorParameterName(): string [] |
返回所有的颜色材质参数 |
getProperty(propertyName : string ): any |
获取材质指定名称属性 |
getPropertyNames(): string [] |
获取材质所有属性名称 |
getScalarParameterValue(parameterName : string ): number |
获取浮点参数值 |
getTextureParameterValue(parameterName : string ): string |
获取贴图参数值 |
getVectorParameterValue(parameterName : string ): LinearColor |
获取颜色参数值 |
setProperty(propertyName : string , value : any ): void |
设置材质属性 |
setScalarParameterValue(parameterName : string , value : number ): void |
设置浮点参数值。 |
setTextureParameterValue(parameterName : string , value : string ): void |
设置贴图参数值 |
setVectorParameterValue(parameterName : string , value : LinearColor ): void |
设置颜色参数值 |
Methods
getAllScalarParameterName
• getAllScalarParameterName(): string
[]
返回所有的浮点材质参数
Returns
string [] | 材质参数数组 |
---|
getAllTextureParameterName
• getAllTextureParameterName(): string
[]
返回所有的贴图材质参数
Returns
string [] | 材质参数数组 |
---|
getAllVectorParameterName
• getAllVectorParameterName(): string
[]
返回所有的颜色材质参数
Returns
string [] | 材质参数数组 |
---|
getProperty
• getProperty(propertyName
): any
获取材质指定名称属性
Parameters
propertyName | string |
---|
Returns
any |
---|
getPropertyNames
• getPropertyNames(): string
[]
获取材质所有属性名称
Returns
string [] | 返回属性名称列表 |
---|
getScalarParameterValue
• getScalarParameterValue(parameterName
): number
获取浮点参数值
Parameters
parameterName string | 传入材质标量参数名称 range:参数名称 |
---|
Returns
number | 参数值 |
---|
标量参数是材质中的一个可调节的数值,可以用于控制材质的各种属性,例如颜色、强度、透明度等。
通过获取标量参数的值,可以根据需要在游戏中进行动态调整和使用。
getTextureParameterValue
• getTextureParameterValue(parameterName
): string
获取贴图参数值
Parameters
parameterName string | 参数名称 range: |
---|
Returns
string | 参数值 |
---|
getVectorParameterValue
• getVectorParameterValue(parameterName
): LinearColor
获取颜色参数值
Parameters
parameterName string | 参数名称 range: |
---|
Returns
LinearColor | 参数值 |
---|
setProperty
• setProperty(propertyName
, value
): void
设置材质属性
Parameters
propertyName | string |
---|---|
value | any |
setScalarParameterValue
• setScalarParameterValue(parameterName
, value
): void
设置浮点参数值。
Parameters
parameterName string | 参数名称 range: |
---|---|
value number | 参数值 设置可调节参数的数值为多少。type: 浮点数 range: 不做限制。 |
setTextureParameterValue
• setTextureParameterValue(parameterName
, value
): void
设置贴图参数值
Parameters
parameterName string | 参数名称 range: |
---|---|
value string | 参数值 range: 被设置的值,不做限制,合理即可 |
setVectorParameterValue
• setVectorParameterValue(parameterName
, value
): void
设置颜色参数值
Parameters
parameterName string | 参数名称 range: |
---|---|
value LinearColor | 参数值 type: 浮点数 range: 不做限制。 |