unity实战 实现鼠标选择对象前置显示
需求介绍:
实现玩家选中的对象在前置显示
实现方案:
方案一:深度写入和深度检测
说明:
ZTest:深度测试(LEqua小于等于、Less小于、Greater大于、Equal等于 , NotEqual不等于)
默认是LEqual,是一个对比颜色深度的方式,LEqual是表示新颜色小于等于旧颜色的深的时候,即替覆盖颜色,从上面写入的深度缓存里拿到自己的深度进行对比
ZWrite:深度写入(On打开、Off关闭)
默认是On,这个定义表示这个材质的颜色将会写入缓存当中,记录当前颜色的深度,可以与其他颜色进行深度对比,这个参数是为深度检测服务的
在shader里面两参数是隐式存在,如果要改变得显式修改。
当前的需求需要动态的改变当前的渲染顺序和深度检测方式,可以通过更换shader或者材质来实现(改参数的方式我没看到,应该是有的,但是shader我现在并不是特别的了解,还在学习中)
遇到的问题:(未解决)
模型去掉了深度检测之后,模型拿的武器,如果在背后的时候会渲染在身体前面,会穿透。(身体和武器的贴图是同一张)
方案总结
这个方案虽然实现这个功能不行,但是通过深度缓存和深度测试可以实现穿墙显示的效果,即不希望玩家在墙后面的时候被完全挡住的时候使用这个方案是可行的。思路是调整地面,山体,阻挡,和角色渲染顺序(由于已经关闭了深度测试,引起渲染的前后就完全由渲染顺序决定,这里只要排好序)如果想要做一些身体的变化可以shader写一些效果。
方案二:镜头使用layer分层渲染
说明:
camera上有一个Culling Mask参数,可以选择镜头渲染的Layer层,比如ui,hero等等可以自己设定。
两个镜头绑在一起的时候,那么镜头参数是一致的,可以将两个镜头显示的内容合并在一起,比如镜头1显示地表,镜头2显示角色。
总结:
优点是分层实现,缺点多是多了镜头,效率会有一定影响。多了肯定很吃性能。得尽量把不需要的参数去掉。
参考博客:
深度测试和深度写入例子讲解,很容易懂
https://www.cnblogs.com/kane0526/p/9845765.html
转载于:https://www.cnblogs.com/leilei-weapon/p/10249123.html
unity实战 实现鼠标选择对象前置显示相关推荐
- unity实战:狂暴机器人游戏教程(下篇)
文章目录 前言 三.敌人 3.1创建机器人 步骤1 创建脚本 **步骤2 定义生命周期** **步骤3添加射击动画** 3.2发射机器人导弹 步骤1 创建导弹运动逻辑 步骤2 添加导弹发射方法 3.3 ...
- Unity实战——牧师与魔鬼
Unity实战--牧师与魔鬼 项目源码 最终效果 牧师与魔鬼游戏效果 背景描述 牧师与魔鬼是一款益智游戏,您将帮助牧师与魔鬼在规定时间内过河.河边有三个牧师和三个魔鬼.他们都想去这条河的对岸,但只有一 ...
- [开源] C语言项目实战 - 虚拟鼠标 - VirtualMouse
C语言项目实战 - 虚拟鼠标 - VirtualMouse 目录 关于软件 软件介绍 使用帮助 项目介绍 源码及软件下载 知识点扫描 热键的使用 鼠标事件的模拟 字体的选用 开机自启动的设置 为软件添 ...
- Tiled结合Unity实现瓦片地图——Unity实战篇
本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢. http://blog.csdn.net/lzhq1982/article/details/75425915 上文说道,Ti ...
- css实现鼠标禁用(鼠标滑过显示红色禁止符号)
css实现鼠标禁用(鼠标滑过显示红色禁止符号) 创作背景 css鼠标禁用 创作背景 从本文开始,将会用三篇文章来一步一步实现 vue+antd+ts实战后台管理系统中table表格的不可控操作.中间会 ...
- 用VB.NET实现AUTOCAD中鼠标选中后显示事件
用VB.NET实现AUTOCAD中鼠标选中后显示事件 主要用到document中ImpliedSelectionChanged事件 Imports Autodesk.AutoCAD.Applicati ...
- unity怎么在UI面板上显示出3D立体模型
unity怎么在Ui面板上显示出3D模型! 1.创建Render texture 2.创建RawImage 3.创建摄像机 注意点:1,摄像机和RawImage上面要将Render texture拖上 ...
- HyperLink 鼠标经过时候显示全部文字
先说问题: 我在做一个上一篇,下一篇功能 在显示的时候我先做了截取操作 但是操作后要在前台显示的时, 鼠标经过时 显示全部的文字 所以添加下面的这个属性 this.HyperLink2.Attribu ...
- selenium 鼠标悬浮_处理Selenium3+python3定位鼠标悬停才显示的元素
先给大家介绍下Selenium3+python3--如何定位鼠标悬停才显示的元素 定位鼠标悬停才显示的元素,要引入新模块 # coding:utf-8 from selenium import web ...
最新文章
- 2021年大数据Spark(十八):Spark Core的RDD Checkpoint
- Xcode7.2如何真机调试iOS 9.3的设备
- JavaScript公共运行库
- 浅谈python_浅谈python-Django
- 六个经典的HTML5面试问题奉上,太有用啦!
- 操作索引库-mapping属性
- 我建了这个-现在呢? 如何在DigitalOcean Droplet上部署React App。
- tshark 和 tcpdump 的区别
- Lnmp上安装Yaf学习(一)
- entity framework 调用 oracle 序列_Weblogic T3 反序列化漏洞(CVE20192890 )分析
- 膜拜NFC解锁(靠近即开锁)
- 机器人手眼标定原理介绍(含详细推导过程)使用Tsai-Lenz算法
- H3C华三交换机初始化配置V7版
- winform 窗体的单例模式
- 实战游戏项目管理5-配置管理
- ChucK初步(6)
- 视频H5页面/视频app怎么做?
- 力扣(202.454)补9.18
- codeblocks下如何修改新建文件的默认代码?
- 【salesforce Admin必备】-想到啥写点啥