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那里的点坐标没有记录下来。。可是不知道是不是……

参考技术A using UnityEngine;
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在两点之间生成抛物线的主要内容,如果未能解决你的问题,请参考以下文章

unity利用Vector3计算两点的距离,利用Quaternion求两点夹角。

Unity之LineRenderer组件

<转载>Unity3D中LineRenderer的使用

Unity LineRenderer - 无法获得参考

Unity LineRenderer - 无法设置位置

Unity LineRenderer制作画版