unity3D 鼠标点击拖动画线
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
希望能够帮到你本回答被提问者采纳
以上是关于unity3D 鼠标点击拖动画线的主要内容,如果未能解决你的问题,请参考以下文章
我想写个unity3D C#脚本用鼠标拖动物体,该怎么办呀,