unity利用LineRenderer在两点之间生成抛物线
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity利用LineRenderer在两点之间生成抛物线相关的知识,希望对你有一定的参考价值。
参考技术A 因为VR中的瞬移标志有时候感觉不太明显,所以想要在手柄和标志之间生成一条抛物线,总结了一下抛物线的基础知识。平抛运动可用两种 途径来解答:一种是位移路径,另一种是速度路径。
常用的属性有:
第一种生成抛物线的方法是已知抛物线的起点和终点,求两点间的抛物线方程
unity3D 鼠标点击拖动画线
var myColor:Color;
var firstPosition:Vector3;
var secondPosition:Vector3;
var middlePosition:Vector3;
var isClicked:boolean=false;
private var lineRenderer:LineRenderer;
function Start()
lineRenderer=gameObject.AddComponent(LineRenderer);
lineRenderer.material.color=myColor;
lineRenderer.SetWidth(0.1,0.1);
function Update()
var isMouseDown:boolean=Input.GetMouseButton(0);
if(isMouseDown &&!isClicked)
firstPosition=new Vector3(Input.mousePosition.x,Input.mousePositon.y,1);
lineRenderer.SetVertexCount(1);
lineRenderer.enabled=true;
lineRenderer.SetPosition(0,firstPosition);
isClicked=false;
else if(isMouseDown)
secondPosition=new Vector3(Input.mousePosition.x,Input.mousePositon.y,1);
lineRenderer.SetVertexCount(2);
lineRenderer.SetPosition(1,secondPosition);
if(Input.GetMouseButtonUp(0))
isClicked=false;
secondPosition=new Vector3(Input.mousePosition.x,Input.mousePositon.y,1);
lineRenderer.SetVertexCount(2);
lineRenderer.SetPosition(1,secondPosition);
这是我的代码,我估计是Update那里的点坐标没有记录下来。。可是不知道是不是……
using System.Collections;
public class Test : MonoBehaviour
public Material mat;
public Color color = Color.red;
public Vector3 pos1;
public Vector3 pos2;
public bool isReady = false;
void Start()
mat.color = color;
void Update()
if (Input.GetMouseButtonDown(0))
pos1 = Input.mousePosition;
if (Input.GetMouseButtonUp(0))
pos2 = Input.mousePosition;
isReady = true;
void OnPostRender()
if (isReady)
GL.PushMatrix();
mat.SetPass(0);
GL.LoadOrtho();
GL.Begin(GL.LINES);
GL.Color(color);
GL.Vertex3(pos1.x/Screen.width, pos1.y/Screen.height, pos1.z);
GL.Vertex3(pos2.x / Screen.width, pos2.y / Screen.height, pos2.z);
GL.End();
GL.PopMatrix();
希望能够帮到你本回答被提问者采纳
以上是关于unity利用LineRenderer在两点之间生成抛物线的主要内容,如果未能解决你的问题,请参考以下文章