U3D常用方法总结

1,四元数与三维向量的转换

        Quaternion.eulerAngles 将四元数转为Vector3;      Quaternion.Euler(Vector3(0, 30, 0))传入一个Vector3将其转为四元数

 

2. 2D控件跟随3D场景中的物体

     主要是两个摄像机的坐标转换:

                        pos = MainCamera.WorldToScreenPoint(transform.position);   
                         pos.z = 0f;    //z一定要为0.
                         
                         //2. 使用UI摄像机转换到NGUI的世界坐标.
                         Vector3 pos2 = UICamera.currentCamera.ScreenToWorldPoint(pos);
                         
                         //3. 赋值给NGUI控件.
                         //temp为NGUI控件.
                        widge .transform.position = pos2;
3.射线检测
  Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//射线从这里生成
RaycastHit hit;//这个是碰撞检测的目标
if (Physics.Raycast(ray, out hit, 5))//传入的参数依次是:射线、射线碰撞物、射线检测距离
{
GameObject obj = hit.transform.gameObject;//或者检测hit.collider之类的
if (obj.tag == "takes")
{
Destroy(obj);//我做的是拾取功能,所以检测到的物体如果tag是takes就自销毁
}
}
}

你可能感兴趣的:(Unity3d)