该教程向我们展示了ModifyObject如何将对象进行修改的。
使用文档地址:http://www.west-racing.com/mf/?page_id=317
简单的mod是一个作为教程的模板,它显示了如何通过覆盖单一方法向系统添加您自己的修改器。这个mod简单地将一个随机数添加到一个公共向量的每个顶点的位置上。
Map方法是添加新修饰符的关键,系统将调用网格上每个顶点的方法,然后修饰符“修改”这个值并返回它。我价值传递的int数组索引到网格的顶点可以用于一些修饰符,如果该值为1,这意味着值传递不是一个顶点值只是一般的变形值,这通常是一个小发明位置画小发明框等。
这个修饰符就像你能得到的那样简单,所以不使用修饰符偏移量或gizmo值。请检查教程部分,以获得一个更复杂的自定义修饰符的例子。
SimpleMod参数描述
a3
最大限度地移动向各个方向移动。
using UnityEngine;
[AddComponentMenu("Modifiers/Simple")]
public class MegaSimpleMod : MegaModifier
{
public Vector3 a3;
// Return the name of the modifier
public override string ModName() { return "Simple"; }
// For built in mods this is used to open the help file
public override string GetHelpURL() { return "SimpleMod.htm"; }
public override Vector3 Map(int i, Vector3 p)
{
p.x += (-1.0f + (Random.value * 0.5f)) * a3.x;
p.y += (-1.0f + (Random.value * 0.5f)) * a3.y;
p.z += (-1.0f + (Random.value * 0.5f)) * a3.z;
return p;
}
}