美文网首页
鼠标画画,物体轨迹

鼠标画画,物体轨迹

作者: 夜照天星 | 来源:发表于2017-11-22 15:24 被阅读0次

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class draw001 : MonoBehaviour {

public Material material;

private List<Vector3> lineInfo;

public Transform CUBE;

private Vector3 _vec3TargetScreenSpace;

Vector3 coords;

// Use this for initialization

void Start () {

//初始化鼠标线段链表

lineInfo=new List<Vector3>();

}

// Update is called once per frame

void Update () {

//coords = CUBE.position;

if (CUBE.position!=coords) {

//每次鼠标改变的位置存储进链表

//lineInfo.Add (Input.mousePosition);

_vec3TargetScreenSpace = Camera.main.WorldToScreenPoint(CUBE.position);  

lineInfo.Add (_vec3TargetScreenSpace);

}

coords = CUBE.position;

if (Input.GetMouseButtonUp (1)) {

//每次鼠标改变的位置存储进链表

lineInfo.Clear ();

}

}

void OnGUI(){

GUILayout.Label ("当前鼠标x轴的位置:" + _vec3TargetScreenSpace.x);

GUILayout.Label ("当前鼠标y轴的位置:" + _vec3TargetScreenSpace.y);

}

//此绘制方法由系统调用

void OnPostRender(){

if (!material) {

Debug.LogError ("请给材质资源赋值");

return;

}

//设置该材质的通道,0位默认值

material.SetPass(0);

//设置绘制2D图像

GL.LoadOrtho ();

//表示开始绘制,绘制类型为线段

GL.Begin (GL.LINES);

//得到鼠标点信息的总数量

int size = lineInfo.Count;

//遍历鼠标点的链表

for (int i = 0; i < size - 1; i++) {

Vector3 start = lineInfo [i];

Vector3 end = lineInfo [i + 1];

//绘制线段

DrawLine (start.x, start.y, end.x, end.y);

}

//结束绘制

GL.End ();

}

void DrawLine(float x1,float y1,float x2,float y2){

  //绘制线段,某个点的像素坐标除以屏幕宽或者高

GL.Vertex(new Vector3(x1/Screen.width,y1/Screen.height,0));

GL.Vertex(new Vector3(x2/Screen.width,y2/Screen.height,0));

}

}

相关文章

  • 鼠标画画,物体轨迹

    using System.Collections; using System.Collections.Generi...

  • Unity3d-OnMouseAPI之选择物体,移动物体。

    一、简单的场景 二、鼠标移向物体、选中、点击、移动、离开。 1、鼠标移向物体 2、鼠标选中物体首先移向物体 然后选...

  • 射线练习题

    场景中创建N(两个以上)个物体,鼠标可以选中任何物体,当鼠标选中为非地面时,选中的物体变为红色,之前选中的物体恢复...

  • AdventureCreator学习笔记7:热点和交互

    鼠标放在某个物体上,通过鼠标点击能与物体产生交互时,这个物体所在的位置可以称为热点。而交互指的是对于玩家的输入游戏...

  • 在unity中实现鼠标拖动物体移动

    主要步骤 得到物体屏幕坐标的Z值 物体由世界坐标转为屏幕坐标 得到鼠标的世界坐标(Z值是物体的屏幕坐标) 鼠标三维...

  • 关于AutoGeniusPro

    AutoGeniusPro(v1.0)是一套基于VC++ 6.0 实现的鼠标轨迹录制工具,该工具支持鼠标轨迹录制、...

  • 鼠标拖动物体(物体旋转)

    、、、using System.Collections;using System.Collections.Gene...

  • 鼠标拖动物体移动

    简单来说,项目需要用鼠标点击物体然后拖动物体移动。一开始我想到的方法是:把鼠标的屏幕坐标转换为世界坐标,在让物体跟...

  • unity3d问题集 <3> 对Physics.Ra

    在游戏中,我们常常要用到鼠标来控制物体的移动或是鼠标拾取某个物体。还有射击游戏里,子弹打中靶子......这些都需...

  • 获取真实鼠标轨迹

    保存成a.html文件,双击打开

网友评论

      本文标题:鼠标画画,物体轨迹

      本文链接:https://www.haomeiwen.com/subject/ajtovxtx.html