unity3d画线插件Vectrosity 2.0使用总结
(2014-01-20 23:53:29)
标签:
unity3d画线vectrosity2.0 |
分类: unity3d |
2.实时改画出来的线,只用在start里把线new出来,注意点向量数组用一个私有变量数组,然后在update里改这个向量数组就可以了,最后在lateUpdate里line.Draw3DAuto就可以了。
2.1注意,如果在new出线来的时候写的是new Vector[多少],那么这个数组你就丢了,没有指针指向它了,在update里就没法再改这条线了。
2.2如果你在update写new线出来,很快就死机,因为你是每帧不停的造一条线出来。
3.line.Draw()
line.Draw3DAuto()可以自动适应相机的角度位置的变化,不用再写SetCamera()
4.注意画闭合曲线,数组长度加1的问题。
5.画曲线图可以参考范例场景:高光
以上是看文档和看它自带案例文件的总结,我把它的英文文档翻译了一下,我只翻译了我觉得比较有用的,没有全翻译。
除此之外,这个插件还有另外几个package,比如那个画线的2D坦克,我感觉没什么用,我把上传的插件资源包地址发出来,大家可以自己去研究。
Vectrosity 2.0 :
http://ishare.iask.sina.com.cn/f/66513352.html
Vectrosity 2.3 :
http://ishare.iask.sina.com.cn/f/66513400.html
==============================Vectrosity2.0 Documentation部分翻译==============================
GetPoint
有时你想要得到沿VectorLine上一个点的确切距离。比如,你需要这个点为了用MakeSpline,MakeEllips,或其他函数,绘制条线让一个物体沿线漫游。使用GetPoint函数,首先创建一个2D线,接着调用GetPoint函数,得到沿线距离的点(单位是像素)。GetPoint函数返回值是一个Vector2的点,使用屏幕坐标距离。(Vector3线,看GetPoint3D)
public
}
这个距离被限制在0到线的长度之间(查看GetLength)。所以,如果你指定距离为0,那么结果也是0(也就是线的起始点),如果你指定的距离值大于线的长度的话,那么距离值为线的长度(也就是线的结束点)。
GetPoint01
此函数工作方式与GetPoint相同,只是此函数使用规格化的坐标从0.0到1.0。换句话说,这是一个百分比的绝对值。当你不关心线的实际长度时非常有用,仅仅需要一个点在线长的相对位置值。你可用在脚本中用此函数代替GetPoint函数,它将设置GUIText物体在线的中间:
textObject.pixelOffset
参看VectrosityDemos资源包中的SplineFollow案例,其中的脚本使物体沿线移动就是使用的GetPoint01函数。
GetPoint3D
如果你需要3D线上的点,那么你可用使用GetPoint3D。它的工作方式与GetPoint相同,只不过它使用的是Vector3点画线。GetPoint3D函数返回值是一个Vector3点使用的是世界空间坐标,距离使用的单位是世界单位。
GetPoint3D01
与GetPoint01工作方式相同,只是使用的Vector3点绘制线,返回值是Vector3,使用的是世界空间坐标和世界单位。
GetLength
如果你不使用GetPoint01或者GetPoint3D01函数,你也许需要线到底有多长。这时你可用使用GetLength函数。
var
此函数的返回值是一个float值,如果是2D线则是像素单位长的线长,如果是3D线则是返回的在世界尺寸单位下的线长。
SetDistances
使用GetPoint那几个函数,当你改变了线的点,但是线却没有变化,这是为什么?
一个VectorLine的分段长度是在第一次使用GetLength或者GetPoint那几个函数时编译的。然而线的分段距离不会在你改变了线的点后自动调整。使用SetDistances是推荐方式,你不需要在Update函数中使用GetPoint那几个函数,这样非常占用CPU。你只需要在你更新了线的点之后调用SetDistances函数,但是要在你再次调用GetLength或者GetPoint那几个函数之前使用SetDistances函数。这样线的分段距离就会自动重编译。
void
}
。。。省略
MakeCurve
此函数可以在现有的VectorLine物体上创建贝塞尔曲线。这些曲线基于2个锚点和2个控制点创建。在创建矩形/圆形/椭圆部分,你已经了解了通常的用法。
函数的使用格式:
myLine.MakeCurve
myLine.MakeCurve
myLine.MakeCurve
“index”选项也是一个常用的选项,0是其默认值。其次,在单个VectorLine物体上创建离散的多个分开曲线,如果VectorLine使用连续的线那曲线间会相互连接。
如果你不熟悉贝塞尔曲线如何使用,打开VectrosityDemos资源包里的Curve(曲线)场景。DrawCurve脚本带控制手柄的贝塞尔曲线,SimpleCurve脚本使用4个点的数组绘制一个简单的2D曲线。
MakeSpline
此函数与MakeCurve相似,使用此函数也可用用现有的VectorLine物体制造曲线。主要的不同在于你可使用一个任意数量点的数组,MakeSpline函数将通过这个点数组来创建曲线。(如果你熟悉三角刨分样条线,那你可能就能猜到如何使用MakeSpline函数)
函数使用的格式:
myLine.MakeSpline
只有第1参数是必须要指定的:
myLine.MakeSpline
“splinePoints”是Vector2或者Vector3数组,数组长度没有限制。样条线没有控制点。
如果你的VectorLine物体使用的是100个点,如果使用的是连续类型的线,那么样条线的分段数(segments)是99,如果是使用的离散类型的线,那么分段是50。“loop”控制样条线是否是闭合的曲线。为真则是闭合。
================================================================================================