选择轨迹纹理的 U 坐标是进行平铺还是拉伸。
拉伸会使纹理沿轨迹的整个长度映射一次,而平铺会使纹理以每个世界单位重复一次。若要设置平铺率,请使用 Material.SetTextureScale。
using UnityEditor; using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public LineTextureMode textureMode = LineTextureMode.Stretch; public float tileAmount = 1.0f; private TrailRenderer tr;
void Start() { tr = GetComponent<TrailRenderer>(); tr.material = AssetDatabase.GetBuiltinExtraResource<Material>("Default-Particle.mat"); }
void Update() { tr.textureMode = textureMode; tr.material.SetTextureScale("_MainTex", new Vector2(tileAmount, 1.0f)); tr.transform.position = new Vector3(Mathf.Sin(Time.time * 1.51f) * 7.0f, Mathf.Cos(Time.time * 1.27f) * 4.0f, 0.0f); }
void OnGUI() { textureMode = GUI.Toggle(new Rect(25, 25, 200, 30), textureMode == LineTextureMode.Tile, "Tiled") ? LineTextureMode.Tile : LineTextureMode.Stretch;
if (textureMode == LineTextureMode.Tile) { GUI.Label(new Rect(25, 60, 200, 30), "Tile Amount"); tileAmount = GUI.HorizontalSlider(new Rect(125, 65, 200, 30), tileAmount, 0.1f, 4.0f); } } }