Unity3D制作飘动旗帜代码

来源:互联网 发布:新闻抓取软件 编辑:程序博客网 时间:2024/05/02 01:16

我用max的布料加风力制作了飘动的旗帜,并且把动画转为了关键贞,可是fbx导入u3d后没有反应,请教大家u3d怎样模拟布料,它自带的布料不能像旗帜一样有固定范围;

#pragma strict

var scale = 2.0;

var speed = 2.0;

private var baseHeight : Vector3[];

var useOriginal : boolean = false;

function Update () {

var mesh : Mesh = GetComponent(MeshFilter).mesh;

if (baseHeight == null)

baseHeight = mesh.vertices;

// gameObject.Destroy(GetComponent(MeshCollider));

var vertices = new Vector3[baseHeight.Length];

for (var i=0;i<vertices.length;i++)< p="">

{

var vertex = baseHeight[i];

if (useOriginal) {

vertex.y += Mathf.Sin(Time.time * speed+ baseHeight[i].x + baseHeight[i].y + baseHeight[i].z) * scale;

} else {

vertex.y += Mathf.Sin(Time.time * speed+ baseHeight[i].x + baseHeight[i].y) * (scale*.5) + Mathf.Sin(Time.time * speed+ baseHeight[i].z + baseHeight[i].y) * (scale*.5);

}

vertices[i] = vertex;

}

mesh.vertices = vertices;

mesh.RecalculateNormals();

gameObject.Destroy(GetComponent(MeshCollider));

var collider : MeshCollider = GetComponent(MeshCollider);

if (collider == null) {

collider = gameObject.AddComponent(MeshCollider);

collider.isTrigger = true;

}

}

新建一个plane,你把它挂上看看……

0 0