直接放在相机上!
Unity3D使用的图形引擎是DirectX,OpenGL和自带的APi(Wii),这里使用OpenGL的渲染方式
(使用过OpenGl的应该相对容易理解。另外:代码中使用Shader是因为矩形框中部的透明部分需要)
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
private Vector2 mMouseStart,mMouseEnd;
private boolmBDrawMouseRect;
private Material rectMat = null;//画线的材质不设定系统会用当前材质画线 结果不可控
void Start()
{
mBDrawMouseRect =false;
rectMat = new Material("Shader\"Lines/Colored Blended\" {" +
"SubShader { Pass { " +
" BlendSrcAlpha OneMinusSrcAlpha " +
" ZWrite OffCull Off Fog { Mode Off } " +
" BindChannels {" +
" Bind \"vertex\", vertex Bind \"color\", color }"+
"} } }");//生成画线的材质
rectMat.hideFlags =HideFlags.HideAndDontSave;
rectMat.shader.hideFlags =HideFlags.HideAndDontSave;
} //Unity3D教程手册:www.unitymanual.com
void Update()
{
if(Input.GetMouseButtonDown(0))
//按下鼠标左键
{
Vector3mousePosition = Input.mousePosition;
mMouseStart =new Vector2(mousePosition.x,mousePosition.y);
}
if(Input.GetMouseButton(0))
//持续按下鼠标左键
{
mBDrawMouseRect= true;
Vector3mousePosition = Input.mousePosition;
mMouseEnd =new Vector2(mousePosition.x,mousePosition.y);
}