Skip to main content

点中物体移动位置(根据光线判断)

var layerMask = 1 << 4;                  //层

var hit : RaycastHit; //光
var hit1: RaycastHit; //光
var hitflag : boolean;
var hitobject : Transform;
var hitflag1 : boolean;

function Start()
{
layerMask = ~layerMask; //层取反
hitflag=false;
hitobject=null;
}

function Update ()
{
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);

if (Physics.Raycast (ray, hit, Mathf.Infinity)&&Input.GetKey (KeyCode.Mouse0))
{
Debug.DrawLine (ray.origin, hit.point);
print(hit.transform.localScale );

print(hit.transform.name);

//~ if(hit.transform.tag=="Goods"&&hitflag1) //标签
if(hit.transform.tag=="Goods")
{
if (hitflag==false)
{
hitobject=hit.transform;
hitflag=true;
}
}

if(hitflag&&hitobject!=null) //选中物体
{
Physics.Raycast (ray, hit1, Mathf.Infinity,layerMask); //打光
hitobject.position=hit1.point; //物体的坐标等于光2的碰撞点
}
}

if (Input.GetKeyUp (KeyCode.Mouse0))
{
hitflag=false;
hitobject=null;
}
}

本条目发布于2010年6月7日。属于Unity脚本分类。