假设场景中有两台摄像机, 一台是NGUI的摄像机, 另外一台是投影摄像机.

投影摄像机看的是3D模型, Depth比NGUI的摄像机要大, Clear Flags设置的是Depth only.

现在想让3D模型夹在两个NGUI控件之间.

尝试的办法: 设置深度, 设置RendererQueue都没有用.

没辙了, 只好把想放到3D模型上面的UISprite也使用3D摄像机来看算了.

现在问题来了, 如何让原本在NGUI里已经把位置大小都调好了的东西, 当它在被一个3D摄像机看的时候依然一样?

如果有NGUI对象mSprite, NGUI的Camera为camera2D, 3D摄像机为camera3D.

注意: 前提是mSprite的位置已经在NGUI中调好, 但是它在3D模型的后面.

 //先获取mSprite的屏幕坐标
screenPos = camera2D.WorldoScreenPoint(mSprite.transform.position);
//计算出它要距离3D摄像机的距离
float distance = 1.0f / Mathf.Tan(camera3D.fieldOfView * 0.5f * Mathf.Deg2Rad);
//根据mSprite的屏幕坐标 与 mSprite和3D摄像机之间的距离. 计算出mSprite应该在的位置
Vector3 pos = camera3D.ScreenToWorldPoint(new Vector3(screenPos .x, screenPos .y, distance));
mSprite.transform.position = pos;

如何让NGUI的对象在3D模型之上的更多相关文章

  1. Unity3D游戏开发初探—2.初步了解3D模型基础

    一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...

  2. unity3d设置3D模型显示在2D背景之前(多个相机分层显示)(转)

    解决步骤: 1.添加一个摄像机,命名为BackgroundCamera,然后在Layer添加一个background层.并且将plane拖放到改相机节点下. 然后将BackgroundCamera和P ...

  3. CSS3之简易的3D模型构建[原创开源]

    CSS3之简易的3D模型构建[开源分享] 先上一张图(成果图):这个是使用 3D建模空间[源码之一] 制作出来的模型之一 当然这是一部分模型特写, 之前还制作过枪的3D模型等等. 感兴趣的朋友可以自己 ...

  4. ANDROID嵌入式应用Unity3D视图(画廊3D模型)

    转载请注明来自大型玉米的博客文章(http://blog.csdn.net/a396901990),谢谢支持! 效果展示:   watermark/2/text/aHR0cDovL2Jsb2cuY3N ...

  5. 【Android界面实现】可旋转的汽车3D模型效果的实现

    转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 今天要给大家介绍的是怎样实现可旋转的汽车3D模型. 先看实现效果 这仅仅是静态图,实际上,这个模型是能够依据 ...

  6. three.js实现3D模型展示

    由于项目需要展示3d模型,所以对three做了点研究,分享出来 希望能帮到大家 先看看效果: three.js整体来说 不是很难 只要你静下心来研究研究 很快就会上手的 首先我们在页面上需要创建一个能 ...

  7. 3D模型展示以及体积、表面积计算

    本文原创 如转载请注明出处!!! 本博客地址http://www.cnblogs.com/we-jack 本文原创,如果有同样需求的小伙伴请第一时间联系我 或者在留言区留言 上次为大家提供了3D模型的 ...

  8. Unity在UI界面上显示3D模型/物体,控制模型旋转

    Unity3D物体在UI界面的显示 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  9. 用编程方式编写Babylon格式的宇宙飞船3D模型

    使用上一篇文章(https://www.cnblogs.com/ljzc002/p/9353101.html)中提出的方法,编写一个简单的宇宙飞船3D模型,在这篇文章中对模型制作流程和数学计算步骤进行 ...

随机推荐

  1. 在 CentOS 7.x / Fedora 21 上面体验 PHP 7.0

    编译自:http://linoxide.com/linux-how-to/install-php-7-centos-7-fedora-21/作者: Aun Raza原创:LCTT https://li ...

  2. Rxjava的基本使用

    gradle配置: compile 'io.reactivex:rxjava:1.0.9' 观察者: Observer<String> observer = new Observer< ...

  3. Java第八周学习总结

    20145113第八周学习总结 第十五章学习内容 第15章比较琐碎,相对于之前章节也比较枯燥无味看了一部分,也动手敲了些 Logger logger = Logger.getLogger(" ...

  4. xamarin学习之页面布局

    在android应中,需要注意3个文件,他们分别是:Main.axml,String.xml和Activity.cs. 1.布局文件Main.axml ,该文件保存在Resouses/layout的目 ...

  5. You need to use a Theme.AppCompat theme (or descendant) with this activity

    经过本人的经验和在网上查找,有2种方法可以解决. 解决步骤已经写到我的公众号,二维码在下面. 欢迎观看我的CSDN学院课程,地址:http://edu.csdn.net/course/detail/2 ...

  6. Apache2.4.6服务器安装及配置

    一.系统环境 系统版本:Aliyun Linux release 5.7 内核版本:2.6.18-274.el5 apr版本:apr-1.4.8 apr-util版本:apr-util-1.5.2 p ...

  7. 【Django】Django web项目部署(Nginx+uwsgi)

    一.安装uwsgi 通过pip安装uwsgi. pip install uwsgi 测试uwsgi,创建test.py文件: def application(env, start_response): ...

  8. memory corruption

    今天遇到了一个比较弱的问题,但是涉及到一些东西,所以记录一下. 问题表现为,系统BOSD,在析构函数进行free的时候,有的时候是在使用buffer的过程中就BSOD. 之前是怀疑因为分配的是page ...

  9. PHP开发工具

    “工欲善其事,必先利其器”,进行PHP开发,选择一个合适的开发工具是必要的. 1.Zend Studio 如果对PHP开发工具进行一个排名,Zend Studio一定是当之无愧的第一名.它来自Zend ...

  10. Membership基本用法

    MemberShip简介: Membership是Asp.Net框架,用于管理网站的用户Membership,角色Roles以及配置信息Profile. System.Web.Security.Mem ...