如何在Unity中画unity 抛物线运动
发布网友
发布时间:2022-04-22 18:50
我来回答
共1个回答
热心网友
时间:2022-04-22 20:19
在unity中画抛物线的方法,代码如下:
抛物线公式y=a*x*x+b*x+c;a>0,开口向上;
a<0,开口向下。b=0,抛物线对称轴为y轴。c=0,抛物线经过原点。
获取一些抛物线上的点,然后相邻的两点和原点画三角面,这样可以用三角面拼成了“抛物面”了,
而且还可以通过修改a的值来改变小山峰的陡峭程度。
直接晒代码 Parabola.js :
private var a:int;//a>0,开口向上;a<0,开口向下。
private var b:int;//b=0,抛物线对称轴为y轴
private var c:int;//c=0,抛物线经过原点
private var size:int;
function Start () {
a=-1;
b=0;
c=0;
size=22;
gameObject.AddComponent("MeshFilter");
gameObject.AddComponent("MeshRenderer");
var mesh : Mesh = GetComponent(MeshFilter).mesh;
mesh.Clear();
var v:Vector3[]=new Vector3[size];
var v2:Vector2[]=new Vector2[size];
var index:int []=new int[(size-2)*3];
for(var i:int=0;i
if(i==0)
{
v[i]=Vector3(0,-1,0);
}
else
{
var x:float=(i-size/2)*0.1;
v[i].x=x;
v[i].y=a*x*x+b*x+c;
v[i].z=0;
}
if(i>1){
index[3*i-6]=0;
index[3*i-5]=i-1;
index[3*i-4]=i;
}
print("v["+i+"]="+v[i]);
}
mesh.vertices = v;
mesh.uv = v2;
mesh.triangles = index;
for(var j:int=0;j
print(j+"=="+index[j]);
}
}