Unity3d 框选

有时候,我们在游戏中会遇到需要框选对象的情况,比如红警。
在unity3d中可以用GL非常简单的实现。
1.先用GL画出线框,并求出Bounds
2.遍历对象,将对象的世界坐标转换到屏幕坐标,并测试该坐标是否在Bounds中。

using UnityEngine;
using System.Collections;

public class BoxSelector : MonoBehaviour {

Material _mat ;
bool _select = false;
Vector3 _p1;
Vector3 _p2;
GameObject _cubeObj;
Color _srcColor ;
Renderer _render ;

// Use this for initialization
void Start () {
    if( !_mat ) 
    {
        _mat = new Material("Shader \"Lines/Colored Blended\" {" + "SubShader { Pass { " + "    Blend SrcAlpha OneMinusSrcAlpha " + " ZWrite Off Cull Off Fog { Mode Off } " + "    BindChannels {" + "      Bind \"vertex\", vertex Bind \"color\", color }" + "} } }");
    }

    _cubeObj = GameObject.Find("Cube");
    _render = _cubeObj.GetComponent<Renderer>();
   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值