如何在Unity中画unity3d 2d抛物线线

unity3d 怎么模拟抛物线运动_百度知道当前位置: >
游戏开发中的数学和物理算法:抛物线
时间: 10:42 来源:Unity之家 作者:unity.jb51.net 浏览:
抛物线如果你投掷一个铅球或者踢足球,它们将做一个抛物线运动。因为它们总是受一个垂直于地面的重力加速度g的作用。下图为四个方向上的抛物线。公式:垂直轴向上的抛物线:y=a(xCh)2+k, 顶点为(h,k),关于x=h对称.水平轴向上的抛物线:x=a(yCk)2+h, 顶点为(h,k),关于y=k对称.举例:&&
(责任编辑:脚印)
免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
猜你也喜欢看这些 ??????
其他类型的Unity编程 ??????unity 不用重力如何做出类似弹弹堂的抛物线_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:54,556贴子:
unity 不用重力如何做出类似弹弹堂的抛物线收藏
火星时代unity3d,争当游戏大触,月薪过万小意思,手绘技能,概念设计,商业应用一步到位,你与u3d游戏特效设计师只差一步,赶快点击吧!
用向量模拟重力
参考standard asset里的character motor
刚好在做一个网球的游戏,我发代码给你参考一下float y_length = ( hitfouce.y * hitfouce.y ) / (2 * -gravity * Time.fixedDeltaTime);//上升高度float up_time = hitfouce.y / (-gravity * Time.fixedDeltaTime);//上升时间float alllength = y_length + this.transform.position.y - 5;//上升高度 + 本身高度 - 球半径 = 总高度float down_time = Mathf.Sqrt(2 * alllength / (-gravity * Time.fixedDeltaTime));//下降时间float all_time = up_time + down_//总时间float z_length = Mathf.Abs(downpoint.position.z - this.transform.position.z);//Z轴长度float x_length = Mathf.Abs(downpoint.position.x - this.transform.position.x);//X轴长度float z_dir = Mathf.Sign(downpoint.position.z - this.transform.position.z);//Z轴方向float x_dir = Mathf.Sign(downpoint.position.x - this.transform.position.x);//X轴方向float p_z = z_length / (downpoint.position - this.transform.position).sqrM//计算Z轴/斜边 百分比float p_x = x_length / (downpoint.position - this.transform.position).sqrM//计算X轴/斜边 百分比z_drog = drog * p_z;//初始化阻力x_drog = drog * p_x;//初始化阻力float z_fouce = z_length == 0 ? 0 : (z_length - 0.5f * (z_drog * Time.fixedDeltaTime) * Mathf.Pow(all_time , 2)) / all_z_fouce *= z_//Z轴初速度float x_fouce = x_length == 0 ? 0 : (x_length - 0.5f * (x_drog * Time.fixedDeltaTime) * Mathf.Pow(all_time , 2)) / all_x_fouce *= x_//X轴初速度lastvelocity = new Vector3(x_fouce , hitfouce.y , z_fouce);//赋值
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或2695人阅读
Unity3D初步篇(107)
我想用mesh画一个圆滑的小山峰,之前有高手提到用贝塞尔曲线,我研究了一下,但是还是不会,所以最后用抛物线公式来完成。抛物线公式y=a*x*x+b*x+c;a&0,开口向上;a&0,开口向下。b=0,抛物线对称轴为y轴。c=0,抛物线经过原点。获取一些抛物线上的点,然后相邻的两点和原点画三角面,这样可以用三角面拼成了“抛物面”了,而且还可以通过修改a的值来改变小山峰的陡峭程度。下面来看看代码吧,呵呵~~~
新建一个空的GameObject,然后绑定Parabola.js脚本就ok了。
Parabola.js:
private var a://a&0,开口向上;a&0,开口向下。
private var b://b=0,抛物线对称轴为y轴
private var c://c=0,抛物线经过原点
private var size:
function Start () {
gameObject.AddComponent(&MeshFilter&);
gameObject.AddComponent(&MeshRenderer&);
var mesh : Mesh = GetComponent(MeshFilter).
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&i++){
v[i]=Vector3(0,-1,0);
var x:float=(i-size/2)*0.1;
v[i].y=a*x*x+b*x+c;
index[3*i-6]=0;
index[3*i-5]=i-1;
index[3*i-4]=i;
print(&v[&+i+&]=&+v[i]);
mesh.vertices =
mesh.uv = v2;
mesh.triangles =
for(var j:int=0;j&index.Lj++){
print(j+&==&+index[j]);
再来看看运行效果吧:
& 当a=-1时:
& 当a=-4时:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:615667次
积分:7505
积分:7505
排名:第1935名
原创:106篇
转载:91篇
评论:161条
(5)(13)(5)(2)(1)(2)(1)(17)(1)(1)(10)(11)(6)(11)(4)(6)(5)(4)(13)(13)(20)(6)(4)(16)(20)(1)}

我要回帖

更多关于 unity 抛物线轨迹 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信