这篇条目有关 Source引擎。如需详情,点击这里。

env_texturetoggle

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)
Env texturetoggle.png
C++ 类层级
CTextureToggle
CPointEntity
CBaseEntity
C++ env_texturetoggle.cpp

env_texturetoggle是一个点实体(en),可在所有的 起源 起源 游戏中使用。 它可以让你更改笔刷实体(brush entities)或覆盖层(overlays)的纹理。

实体描述

LightmappedGeneric
{
  $basetexture "path/to/a/VTF/file/with/multiple/frames"
  Proxies
  {
    ToggleTexture
    {
      ToggleTextureVar         $basetexture
      ToggleTextureFrameNumVar $frame
    }
  }
}

要使 env_texturetoggle 正常工作,你的 覆盖层(overlay)(en) 或至少一个 笔刷(brush)(en) 面必须使用带有 切换纹理代理(en)VMT(en) 材质,并且该代理需指向一个至少包含两帧的动画的 VTF(en) 文件。

这样的 VMT 文件可以类似于右侧所示的示例。

PlacementTip.png示例: 假设我们有一个名为 brush 的笔刷实体(brush entity)和一个名为 toggle 的 env_texturetoggle(其目标笔刷(target brush)设为 brush),那么可以在 func_button 上使用以下任意一种输出(Output)来切换该 笔刷(brush) 的纹理。其中,第二和第三种输出的效果相同。
  My Output Target Entity Target Input Parameter Delay Only Once
用于切换纹理的输入
Io11.png OnPressed toggle IncrementTextureIndex 0 No
Io11.png OnPressed toggle SetTextureIndex <n> 0 No
Tip.png提示:如果一个笔刷(brush)包含多个含多帧的纹理,那么执行输出(output)时将会同时影响所有这些纹理。
Cpp.png代码:可以通过代码使用 SetTextureFrameIndex()(en) 函数来设置实体的纹理帧索引。
Icon-Bug.png错误:可见的未命名覆盖层(overlay)上相同的纹理也可能受到影响。  (tested in: 传送门)

键值

Name (目标名称) <target_source>[ Edit ]
这个名称是其他实体通过 输入/输出(en) 或其他 关键值(en)(如 parentnametarget) 来引用该实体时使用的标识符。
该名称也会显示在 Hammer 编辑器的 2D 视图和 实体报告(en) 中。
参见:  所有实体均可使用的 通用键值、输入与输出(en)

Target Brush(es) (目标) <target_destination>
笔刷实体(brush entity)(en)覆盖层(overlays)(en)的名称。所有所有匹配该目标名称(targetname)的实体(包括精灵/sprites)上的 ToggleTexture 材质都将受到影响。

输入

IncrementTextureIndex <无效(en)>
将目标笔刷的当前纹理帧索引值递增 1(即切换至下一帧纹理)。
SetTextureIndex <整数(en)>
将目标笔刷(brush)的纹理帧索引设置为指定数值。
Note.png注意:该参数虽然接收整型数值,但会直接写入无符号字符型 无符号字符型(en) 变量且不做边界检查。若数值超过255或小于0,将发生 Wikipedia icon 溢出

另请参阅