用unity画抛物面
我想用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画抛物面相关推荐
- 通过unity画弧线
using UnityEngine; using System.Collections;public class Test : MonoBehaviour {public int a;//a>0 ...
- 基于UGUI的Unity画线工具
基于UGUI的Unity画线工具 最近项目里需要做一个画线的小游戏,LineRenderer不是很好用,自己撸了一个小工具,效果如下 下面上代码 using System.Collections.Ge ...
- Unity 画折线图
此处的 unity 版本为 5.6 ,不同的的版本,有些API可能不一样 Unity 在不使用第三方插件的前提下画折线图,目前比较好用的方法是用 Unity 自带的 LineRenderer 组件,别 ...
- Unity画线(Vectrosity5.6.1插件)
一个好的插件,会让你事半功倍,在Unity这个如此成熟的生态圈里,几乎常用的功能,都会有对应的插件帮助速简化开发工作,以最低的时间成本达到目的.接下来要介绍的是Unity的一款功能强大的画线插件:Ve ...
- Unity 画自定义网格
有时候需要程序化动态生成网格(例如骨骼) 先3D建一个模型,然后导入到Unity 调试查看mesh.vertices 的排列,用excel几下索引.然后赋值triangle的时候记得按照 123456 ...
- Unity 画三角形
首先创建Unity工程,接着创建一个空的游戏对象,然后给该游戏对象绑定Mesh Filter组件 与 Mesh Renderer组件. Mesh Filter组件:表示网格面,这个网格面是由我们使用代 ...
- unity画一条流动的弧线(贝塞尔线)
最终效果 把下面脚本复制,直接拖上脚本,设置两个点(物体)的位置 GameObject1是开始点的位置,GameObject2是结束点的位置 public Transform[] controlPoi ...
- unity画线之模拟小球抛物线运动轨迹
模拟小球的抛物线运动,如图所示: 这里有点像打台球游戏,模拟在发射之前模拟其轨迹. 划线用的是LineRenderer,不清楚的童鞋可以自行查阅咯.其实也很简单就是挂个LineRenderer脚本,设 ...
- Unity画线之GL
上一篇中,SetPixel的方法,卡顿严重,暂未解决,又去看了原来的GL画线,自己画图思考了一下适配UI的问题,最终解决. 特此说明,GL画线功能,及Shader均为借鉴,自己做了优化. 程序代码如下 ...
最新文章
- 三角测距激光重建算子HALCON
- 国内常见的电子地图坐标介绍
- camunda流程引擎如此简单「四」
- 你知道到底什么是Unikernel吗
- python连接sqlite数据库的代码_Python3实现连接SQLite数据库的方法
- 详解Spring框架的AOP机制
- 学python入门需要什么基础?
- hdu 5411 CRB and Puzzle 矩阵高速幂
- Centos修改yum源为阿里源
- 汇编语言和C语言的比较
- winform读写config文件
- 软考 系统架构设计师考试大纲
- lintcode 订单
- 你是外包,麻烦不要随便偷吃公司的零食
- 谷歌浏览器调用打印机不预览
- Mysql中decode函数的几种用法
- android汉字所占内存
- ecshop Strict standards: Only variables should be passed by reference in flashplay.php on line 181
- 慧都APS解决方案,点亮「照明灯具行业」精益化生产之路
- Wannafly挑战赛27 C蓝魔法师
热门文章
- python从集思录获取最近新发可转债信息
- ubuntu16.04 安装 vjudge
- 我就是一名房地产经纪人!不是中介,谁能明白我们呢?
- Jenkins部署war包和部署jar包的详细步骤
- js将html页面转为pdf
- Java实现微信公众号直接发送参数二维码给用户
- 计算机二级没过电网网申会被刷吗,江苏电网网申——为什么研究生学历的同学网申都过不了!...
- 设计院的出路到底在哪儿?
- liverpool中文意思_that/liverpool是什么意思
- 2022DASCTF Apr X FATE 防疫挑战赛