在项目中遇到物体带有指示线的需求,想到线,可以用两种方法,一个是Line Render,一个是GL。因为之前刚玩了玩GL,就选用GL来完成画线。
先上示意图:
物体旋转,指示线也会跟随,并向外拉出。避免折叠。
再说说思路:
首先设定一个自己的直角坐标系,坐标原点自己设定,当物体处在第一象限或第四象限,指示线向右拉出;处在第二象限或第三象限,指示线向左拉出。
具体设置:
*获取坐标中心点(px,py,pz)
* 指示线长度L
* 起点 pos=parent.transform.position
* 中间点(posx,posy)
*
* 如果pos.x-px>=0&&pos.y-py>0
* 在第一象限
* x1=pos.x+L*(pos.x-px)/(Mathf.Sqrt((pos.x-px)*(pos.x-px)+(pos.y-py)*(pos.y-py)))
* y1=pos.y+L*(pos.y-py)/(Mathf.Sqrt((pos.x-px)*(pos.x-px)+(pos.y-py)*(pos.y-py)))
* 终点(x1,y1)
*
* 如果pos.x-px<0&&pos.y-py>=0
* 在第二象限
*
* 如果pos.x-px<=0&&pos.y-py<0
* 在第三象限
*
* 如果pos.x-px>0&&pos.y-py<=0
* 在第四象限
代码很简单就不上了,需要的可以回复。
后面发现BUG再完善。