unity ugui如何用scrollview展示多个不同的3d物体

将三维物体直接做成scrollview的item子物体,mask遮挡不了三维物体。
用rawimage,只有一台摄像机的情况下,又不太方便裁切摄像机的rendertexture

这种情况我用了一个摄像机,一个创建的Render Texture 显示在UI界面上:具体如图

Scroll View的布局

创建RawImage的遮罩,只显示固定区域

创建承载RenderTexture的相机

最后动态创建RenderTexture,并设置大小,分别给Camera和RawImage的Textrue赋值,就可以正确显示了,并且在滑动时,3D物体同样有遮挡的效果

最后呈现的效果如图:

文笔不好,仅仅是思路,希望有帮助

原文地址:https://www.cnblogs.com/zjka/p/12402149.html

时间: 2024-11-05 09:20:55

unity ugui如何用scrollview展示多个不同的3d物体的相关文章

Unity UGUI —— 无限循环List

还记得大学毕业刚工作的时候是做flash的开发,那时候看到别人写的各种各样的UI组件就非常佩服,后来自己也慢慢尝试着写,发现其实也就那么回事.UI的开发其实技术的成分相对来说不算多,但是一个好的UI是绝对少不了底层组件的支持的.我个人认为UI组件中相对比较复杂的就是List了,所以,这两天实现了一个UGUI的list,写了好几个版本,最终这个版本是相对比较好用的,在这我介绍一下大概思路,一是巩固一下知识做个记录,二是发扬一下分享精神.嘿嘿,大家多多赐教. 写List有两个重点是需要考虑的: 1.

GJM:Unity开发HTC vive 三、远处拖动3D物体 【转载】

腾讯GAD 窗间风月 原文URL : http://gad.qq.com/article/detail/7192223 版权所有,禁止匿名转载:禁止商业使用:禁止个人使用. 在项目中会需要拖动远处的物体,这种要如何去实现,下面就给大家介绍下在Unity HTC vive开发中远处拖动3D物体的教程. 效果如下,手柄射线照射到3D物体的时候,可以通过Trigger按钮抓住物体并拖动 1.导入SDK:SteamVR Plugin和Vive Input Utility 2.删除场景中的默认摄像机,将C

Unity实现滑动列表(ScrollView)-UGUI

步骤: 第一步 创建一个Image,改名为"ScrollView". 添加ScrollRect组件,设置组件:把horziontal(水平方向移动)关闭. 添加Mask组件. 第二步 在ScrollView下添加Image,改名为"Viewport" 第三步 在Viewport下添加Image,改名为"Content",content的大小最好和viewport一样. 设置锚点为与Pivot如下图: 设置这两个的作用是为了让每次添加子元素可以显示

Unity UGUI自定义树形菜单(TreeView)

先上几张效果图:          如果你需要的也是这种效果,那你就来对地方了! 目前,我们这个树形菜单展现出来的功能如下: 1.可以动态配置数据源: 2.点击每个元素的上下文菜单按钮(也就是图中的三角形按钮),可以收缩或展开它的子元素: 3.可以单独判断某一元素的复选框是否被勾选,或者直接获取当前树形菜单中所有被勾选的元素: 4.树形菜单统一控制其下所有子元素按钮的事件分发: 5.可自动调节的滚动视野边缘,根据当前可见的子元素数量进行横向以及纵向的伸缩: 一.首先,我们先制作子元素的模板(Te

unity ugui屏幕适配

1.unity分为2D和3D两种模式,分别对应camera组件的Projection选项,如果是Perspective,就是透视投影(3D模式),如果是Orthographic,就是正交投影(2D模式): 2.unity自带的ugui当中Canvas对象下的Canvas组件当中的Render Mode选项为Screen Space - Overlay时,消耗的draw call相对较少: 3.unity自带的ugui当中Canvas对象下的Canvas Scaler组件的Reference Pi

Unity UGUI 下拉菜单

1.新建Buttom 2.panel里面加下拉buttom using UnityEngine; using System.Collections; public class DropDownList : MonoBehaviour { public GameObject panel; void Start () { panel.SetActive (false); }public void HideOrShow() { panel.SetActive (!panel.activeSelf);

unity ugui消息透传

公司要做一个这东西. A是滑动区域,ScrollRect组件. B是各种选项. C是拾取到鼠标(或触点)的选项. D是拖放区域. 大概要求是这样. 因为B的条目很多,放在A里可以滑动查看.如果要选择一个B,需要长按B,待时间足够之后生产一个新的C.拖动到D区域释放,则给D添加一个节点.其他区域则取消. 如果按住B的时间不够长,又动了鼠标(或触点),则当前滑动操作由A响应,产生A的滑动效果. 这里涉及到一个消息透传的问题. 解释一下自己在做的过程中采用的2个方案以及各自问题. 涉及的函数有以下几个

Unity UGUI Button 无法点击问题一例

理论上,只要一个按钮自己这一层或者子节点有一个控件勾选了RaycastTarget,并且按钮为Interactable的.并且不被其他可以点击的控件阻挡,那么这个按钮就可以被点击 在调一个界面时发现一个诡异的问题,有个按钮死活无法点击,EventSystem无法检测到.旁边的一个按钮却是ok的 对比了下,发现两者的区别是: 可点击的 x轴旋转-180 不可点击 无旋转 将不可点击的旋转-180,发现可以点击了 排查父节点,发现父节点挂了个Image为了做表现,旋转了180. 既然确定问题是旋转导

Unity — — UGUI之背包物品拖放

Unity版本:2017.3 功能:用UGUI实现简单的背包物品拖放/交换功能 一.简介 在UGUI下,物品的拖放脚本实现主要依赖于UnityEngine.EventSystems下的三个接口 IBeginDragHandler,  IDragHandler,  IEndDragHandler: 其次还有IPointerEnterHandler,IPointerExitHandler等接口来实现鼠标移入移出等操作的监控,同时引用这些接口后,对应的方法也是必须要实现的 简单介绍下这几个方法: 官方