Skip to content

Material (JavaScript)

Material

Scripting Name:Insight.Material

材质类。

Properties


color

type :Insight.Vector4

材质的主颜色。

mainTexture

type : string

材质的主纹理名称。

passCount

type : number

(只读)shader 中 pass 的数量。

renderQueue

type : number

材质渲染顺序。

Methods


toString

javascript
public string toString();

将 material 内容以一定格式转为 string 类型。

getColor

javascript
public Insight.Vector4 getColor(string name);

获取 color 属性值。

Parameters

  • name : string 属性名

getColor

javascript
public Insight.Vector4 getColor(property);

获取 color 属性值。

Parameters

  • property : 未暴露的类型 属性 ID

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

getFloat

javascript
public number getColor(string name);

获取 float 属性值。

Parameters

  • name : string 属性名

getFloat

javascript
public number getColor(property);

获取 float 属性值。

Parameters

  • property : 未暴露的类型 属性 ID

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

getInt

javascript
public number getInt(string name);

获取 int 属性值。

Parameters

  • name : string 属性名

getInt

javascript
public number getInt(property);

获取 int 属性值。

Parameters

  • property : 未暴露的类型 属性 ID

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

getMatrix

javascript
public Insight.Matrix4x4 getMatrix(string name);

获取 Matrix 属性值。

Parameters

  • name : string 属性名

getMatrix

javascript
public Insight.Matrix4x4 getMatrix(property);

获取 Matrix 属性值。

Parameters

  • property : 未暴露的类型 属性 ID

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

getTextureName

javascript
public string getTextureName(string name);

获取 Texture 的路径名。

Parameters

  • name : string 属性名

getTextureName

javascript
public string getTextureName(property);

获取 Texture 的路径名。

Parameters

  • property : 未暴露的类型 属性 ID

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

getVector

javascript
public Insight.Vector4 getVector(string name);

获取 vector4 属性值。

Parameters

  • name : string 属性名

getVector

javascript
public Insight.Vector4 getVector(property);

获取 vector4 属性值。

Parameters

  • property : 未暴露的类型 属性 ID

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

hasProperty

javascript
public boolean hasProperty(string name);

判断这个属性是否存在。

Parameters

  • name : string 属性名

propertyToID

javascript
public property propertyToID(string name);

通过属性名获取属性 ID。

Parameters

  • name : string 属性名

setColor

javascript
public void setColor(string name, Insight.Vector4 color);

设置 color 属性值。

Parameters

javascript
// sample:
this.material = this.gameobject.getComponent("Renderer", 0).getMaterial(0);
this.material.setColor("_MainColor", Insight.Vector4.New(0.8, 0,5, 0.7));

setColor

javascript
public void setColor(property, Insight.Vector4 color);

设置 color 属性值。

Parameters

  • property : 未暴露的类型 属性 ID
  • color : Insight.Vector4 设置的颜色值

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

setFloat

javascript
public void setFloat(string name, number value);

设置 float 属性值。

Parameters

  • name : string 属性名
  • value : number 设置的 float 值

setFloat

javascript
public void setFloat(property, number value);

设置 float 属性值。

Parameters

  • property : 未暴露的类型 属性 ID
  • value : number 设置的 float 值

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

setInt

javascript
public void setInt(string name, number value);

设置 int 属性值。

Parameters

  • name : string 属性名
  • value : number 设置的 int 值

setInt

javascript
public void setInt(property, number value);

设置 int 属性值。

Parameters

  • property : 未暴露的类型 属性 ID
  • value : number 设置的 int 值

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

setMatrix

javascript
public void setMatrix(string name, Insight.Matrix4x4 value);

设置 matrix 属性值。

Parameters

setMatrix

javascript
public void setMatrix(property, Insight.Matrix4x4 value);

设置 matrix 属性值。

Parameters

  • property : 未暴露的类型 属性 ID
  • value : Insight.Matrix4x4 设置的 matrix 值

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

setText

javascript
public void setText(string name, string text, number w, number h, number x0, number y0, number x1, number y1, string font, number font_width, number font_height, number flag, number char_stride, number line_stride, number direction, number alignment );

对于一个纹理,设置其上要显示的文字。

Parameters

name参数 类型属性名称,必须是Texture 类型的属性
textstring想要显示的文字
wstring用于显示文字的矩形框的宽度
hnumber用于显示文字的矩形框的高度
x0number文字距离矩形框边界左下角的距离(边界宽度)的横坐标值
y0number文字距离矩形框边界左下角的距离(边界宽度)的纵坐标值
x1number文字距离矩形框边界右上角的距离(边界宽度)的横坐标值
y1number文字距离矩形框边界右上角的距离(边界宽度)的纵坐标值
fontstring字体名称,如 iOS 设备的默认字体名称为“PingFangSC-Regular”,Android 设备的默认字体名称为“DroidSans”
font_widthnumber单个文字的宽度
font_heightnumber单个文字的高度
flagnumber文字风格属性,可以使用掩码的方式控制,如需要粗体和斜体,则传入 768 即可(TextFlag::BOLD + TextFlag::ITALIC = 0x300 = 768)。
char_stridenumber字间距
line_stridenumber行间距
directionnumber文字方向
alignmentnumber文字对齐方式,可以使用掩码的方式控制,如需要居中对齐,则传入 18 即可(TextAlignment::H_MID + TextAlignment::V_MID = 18)。

参见:font_engine::TextFlag, font_engine::TextDirection, font_engine::TextAlignment

⚠️ 目前版本只支持文字风格属性 font_engine::TextFlag = 0,其他风格如粗体等暂不支持

javascript
// sample:
this.material = this.gameobject.getComponent("Renderer", 0).getMaterial(0);
var fontName = "PingFangSC-Regular"; // font for iOS
if(Insight.SystemInfo.operatingSystemType == 4) // is Android
{
    fontName = "NotoSansCJK-Regular.ttc";
}
this.material.setText( "_text_texture"
    , "你好!"
    , 512 , 512
    , 0 , 0 , 511 , 511
    , fontName , 32 , 32 , 0
    , 0 , 32
    , 0 , 18 );

setText

javascript
public void setText(property, string text, number w, number h, number x0, number y0, number x1, number y1, string font, number font_width, number font_height, number flag, number char_stride, number line_stride, number direction, number alignment );

对于一个纹理,设置其上要显示的文字。

Parameters

name参数 类型属性名称,必须是Texture 类型的属性
property未暴露想要显示的文字
wstring用于显示文字的矩形框的宽度
hnumber用于显示文字的矩形框的高度
x0number文字距离矩形框边界左下角的距离(边界宽度)的横坐标值
y0number文字距离矩形框边界左下角的距离(边界宽度)的纵坐标值
x1number文字距离矩形框边界右上角的距离(边界宽度)的横坐标值
y1number文字距离矩形框边界右上角的距离(边界宽度)的纵坐标值
fontstring字体名称,如 iOS 设备的默认字体名称为“PingFangSC-Regular”,Android 设备的默认字体名称为“DroidSans”
font_widthnumber单个文字的宽度
font_heightnumber单个文字的高度
flagnumber文字风格属性,可以使用掩码的方式控制,如需要粗体和斜体,则传入 768 即可(TextFlag::BOLD + TextFlag::ITALIC = 0x300 = 768)。
char_stridenumber字间距
line_stridenumber行间距
directionnumber文字方向
alignmentnumber文字对齐方式,可以使用掩码的方式控制,如需要居中对齐,则传入 18 即可(TextAlignment::H_MID + TextAlignment::V_MID = 18)。

参见:font_engine::TextFlag, font_engine::TextDirection, font_engine::TextAlignment

⚠️ 目前版本只支持文字风格属性 font_engine::TextFlag = 0,其他风格如粗体等暂不支持

要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

setTextureByName

javascript
public void setTextureByName(string name, string textureName);

设置 color 属性值。

Parameters

  • name : string 属性名
  • textureName : string texture 路径名

setTextureByName

javascript
public void setTextureByName(property, string textureName);

设置 color 属性值。

Parameters

  • property : 未暴露的类型 属性 ID
  • textureName : string texture 路径名

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数

setVector

javascript
public void setVector(string name, Insight.Vector4 value);

设置 vector4 属性值。

Parameters

setVector

javascript
public void setVector(property, Insight.Vector4 value);

设置 vector4 属性值。

Parameters

  • property : 未暴露的类型 属性 ID
  • value : Insight.Vector4 设置的 vector4 值

⚠️ 要结合 PropertyToID 方法,将 PropertyToID 的返回值作为该方法的参数