Unity3D NGUI从背包中拖出并在场景中生成物体
来源:互联网 发布:tt聊天软件 编辑:程序博客网 时间:2024/06/07 14:27
http://blog.csdn.net/littleadr
由于游戏需要从背包中拖出武器并在场景中相应的位置生成出来,所以研究了一下这个。
一般来说,在Unity3D开发中如果使用NGUI为游戏做UI,我们的场景和UI并不是使用一个相机进行渲染的,所以从背包中拖出物体并在场景相应的位置生成物体,就会涉及到UICamera和场景摄像机的转换。我在做这个时主要通过打射线来实现坐标转换。
如何创建一个可拖动的UI组件可以参考NGUI中的Example 11
protected override void OnDragDropRelease(GameObject surface)
{
base.OnDragDropRelease(surface);
//首先将拖动按钮时,按钮的位置通过UICamera转换为屏幕坐标
Vector3 screenPoint = UICamera.WorldToScreenPoint(this.transform.position);
/*然后我们需要在场景中建一个EmptyGameObject,并为其命名为InstantiatePos,为其挂上collider,
*这里我们将InstantiatePos的layer设为Pos(我们自己创建的层,第9层),然后我们就能通过主摄像机在刚刚
* 得到的屏幕坐标的位置打出一条射线,在这条射线有InstantiatePos发生碰撞的位置就是我们武器生成的位置,
* 就可以在此处生成从UI生成的物体。
*/
int layerMask = 1 << 9;
RayHit hit;
float distance = 1000.0f;
if (!Physics.Raycast(mainCamera.ScreenPointToRay(screenPoint), out hit, distance, layerMask))
{
return;
}
//生成武器的位置
weapon.positon = hit.point;
}
- Unity3D NGUI从背包中拖出并在场景中生成物体
- [Unity3D]Unity3D游戏开发之在3D场景中选择物体并显示轮廓效果
- Unity3D游戏开发之在3D场景中选择物体并显示轮廓效果
- [Unity3D]Unity3D游戏开发之在3D场景中选择物体并显示轮廓效果强化版
- Unity3D游戏开发之在3D场景中选择物体并显示轮廓效果强化版
- Unity3d 场景中物体渐隐效果实现
- Unity3D NGUI制作的Button放到场景中,按钮从2D变到3D
- Unity3D中2DUI跟随场景中3D物体
- unity3d在android的场景中选择一个物体让他旋转平移
- Unity3D中通过NGUI实现的场景跳转
- unity3d 随机函数 场景中物体移动和旋转
- 【Unity3d开发基础】场景中物体的变换
- unity3d点击屏幕判断是否击中场景中物体
- Unity3D在NGUI中使用mask
- 如何在3D场景中选择物体并显示轮廓效果
- 如何在WPF中载入Unity3D场景?
- Unity3D中判断物体是否在摄像机视野中
- 物体旋转 NGUI的UITexture播放视频在场景中较暗
- SDUT-2498 AOE网上的关键路径
- Keywords Search(多模式串字符匹配--我的第一道AC自动机)
- 《JavaScript高级程序设计》读书笔记——String方法
- IOS OC NSString基础知识
- 在Mac OS X使用Elasticsearch的基本流程
- Unity3D NGUI从背包中拖出并在场景中生成物体
- 消息中间件原理及JMS简介之二
- 4.Median of Two Sorted Arrays
- CCF题目: 图像旋转
- Hdoj 1573 A/B
- ClientDataSet 使用内存表
- 辨析对常量的引用、指向常量的指针、常量指针
- 5.Longest Palindromic Substring
- Leetcode: Majority Element II