我想用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: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<size;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<index.Length;j++){print(j+"=="+index[j]);}}

再来看看运行效果吧:

当a=-1时:

当a=-4时:

用unity画抛物面相关推荐

  1. 通过unity画弧线

    using UnityEngine; using System.Collections;public class Test : MonoBehaviour {public int a;//a>0 ...

  2. 基于UGUI的Unity画线工具

    基于UGUI的Unity画线工具 最近项目里需要做一个画线的小游戏,LineRenderer不是很好用,自己撸了一个小工具,效果如下 下面上代码 using System.Collections.Ge ...

  3. Unity 画折线图

    此处的 unity 版本为 5.6 ,不同的的版本,有些API可能不一样 Unity 在不使用第三方插件的前提下画折线图,目前比较好用的方法是用 Unity 自带的 LineRenderer 组件,别 ...

  4. Unity画线(Vectrosity5.6.1插件)

    一个好的插件,会让你事半功倍,在Unity这个如此成熟的生态圈里,几乎常用的功能,都会有对应的插件帮助速简化开发工作,以最低的时间成本达到目的.接下来要介绍的是Unity的一款功能强大的画线插件:Ve ...

  5. Unity 画自定义网格

    有时候需要程序化动态生成网格(例如骨骼) 先3D建一个模型,然后导入到Unity 调试查看mesh.vertices 的排列,用excel几下索引.然后赋值triangle的时候记得按照 123456 ...

  6. Unity 画三角形

    首先创建Unity工程,接着创建一个空的游戏对象,然后给该游戏对象绑定Mesh Filter组件 与 Mesh Renderer组件. Mesh Filter组件:表示网格面,这个网格面是由我们使用代 ...

  7. unity画一条流动的弧线(贝塞尔线)

    最终效果 把下面脚本复制,直接拖上脚本,设置两个点(物体)的位置 GameObject1是开始点的位置,GameObject2是结束点的位置 public Transform[] controlPoi ...

  8. unity画线之模拟小球抛物线运动轨迹

    模拟小球的抛物线运动,如图所示: 这里有点像打台球游戏,模拟在发射之前模拟其轨迹. 划线用的是LineRenderer,不清楚的童鞋可以自行查阅咯.其实也很简单就是挂个LineRenderer脚本,设 ...

  9. Unity画线之GL

    上一篇中,SetPixel的方法,卡顿严重,暂未解决,又去看了原来的GL画线,自己画图思考了一下适配UI的问题,最终解决. 特此说明,GL画线功能,及Shader均为借鉴,自己做了优化. 程序代码如下 ...

最新文章

  1. 三角测距激光重建算子HALCON
  2. 国内常见的电子地图坐标介绍
  3. camunda流程引擎如此简单「四」
  4. 你知道到底什么是Unikernel吗
  5. python连接sqlite数据库的代码_Python3实现连接SQLite数据库的方法
  6. 详解Spring框架的AOP机制
  7. 学python入门需要什么基础?
  8. hdu 5411 CRB and Puzzle 矩阵高速幂
  9. Centos修改yum源为阿里源
  10. 汇编语言和C语言的比较
  11. winform读写config文件
  12. 软考 系统架构设计师考试大纲
  13. lintcode 订单
  14. 你是外包,麻烦不要随便偷吃公司的零食
  15. 谷歌浏览器调用打印机不预览
  16. Mysql中decode函数的几种用法
  17. android汉字所占内存
  18. ecshop Strict standards: Only variables should be passed by reference in flashplay.php on line 181
  19. 慧都APS解决方案,点亮「照明灯具行业」精益化生产之路
  20. Wannafly挑战赛27 C蓝魔法师

热门文章

  1. python从集思录获取最近新发可转债信息
  2. ubuntu16.04 安装 vjudge
  3. 我就是一名房地产经纪人!不是中介,谁能明白我们呢?
  4. Jenkins部署war包和部署jar包的详细步骤
  5. js将html页面转为pdf
  6. Java实现微信公众号直接发送参数二维码给用户
  7. 计算机二级没过电网网申会被刷吗,江苏电网网申——为什么研究生学历的同学网申都过不了!...
  8. 设计院的出路到底在哪儿?
  9. liverpool中文意思_that/liverpool是什么意思
  10. 2022DASCTF Apr X FATE 防疫挑战赛