3D游戏,经常会看到透视效果,例如《王者荣耀》草丛透视,《拥挤城市》建筑透视。

实现原理:把3D模型MeshRenderer中Materials替换成透明材质球。

举例:《拥挤城市》3D房子建筑透视效果实现,效果如下图,建筑阻碍了相机看到主角,建筑变成白色透明。

步骤1:创建一个材质球,选择Shader为Unlit/Transparent,然后把透明贴图(透明度高的图片)赋给材质球。

步骤2:代码检测(射线检测)

using UnityEngine;
using System.Collections;public class PlayerViewProtect : MonoBehaviour
{public LayerMask LayerMask;public Material ProtectMaterial;private Material[] originMaterials;private GameObject hitObj;private void Update(){Ray ray = new Ray(Camera.main.transform.position, directionTo(Camera.main.transform.position,transform.position));Debug.DrawRay(ray.origin,ray.direction);RaycastHit hit;if (Physics.Raycast(ray,  out hit, 50 , LayerMask)){if(hitObj == null || hitObj != hit.collider.gameObject){Renderer r;if(hitObj != null){r = hitObj.GetComponent<Renderer>();r.materials = originMaterials;}hitObj = hit.collider.gameObject;r = hit.collider.gameObject.GetComponent<Renderer>();if(r == null){hitObj = null;}else{originMaterials = r.materials;r.material = ProtectMaterial;}}}else{if(hitObj != null){Renderer r = hitObj.GetComponent<Renderer>();r.materials = originMaterials;hitObj = null;originMaterials = null;}}}private Vector3 directionTo(Vector3 rFrom, Vector3 rTo){Vector3 lDifference = rTo - rFrom;return lDifference.normalized;}
}


LayerMask:要检测的层级,这里只检测建筑Buildings。
ProtectMaterial:替换建筑的透明材质球。
代码中使用射线检测镜头和主角之间是否存在LayerMask层的建筑,如果检测到则执行步骤3。

步骤3:建筑MeshRenderer中Materials替换成透明材质球

Unity3D 《拥挤城市》3D房子建筑透视效果实现相关推荐

  1. 拥挤城市小程序如何玩转会展营销?

    玩过Crowd City拥挤城市都知道,它是一款精彩有趣的休闲手游,延续经典的io竞技规则,玩家需要控制自己颜色的人群来吞噬和移动.游戏画面精致细腻,背景由一些虚拟建筑物组成.至今,已经从最初只有的A ...

  2. 挤拥城市游戏android,拥挤城市crowdcity

    <拥挤城市crowdcity游戏安卓版>是一款在当下非常火爆的io竞技手游,这款游戏终于移植到了安卓版上,不但内容没有变化,玩法也都是最经典io玩法,玩家还可以对小人的颜色进行改变,成群结 ...

  3. 拥挤城市怎么在电脑上玩 拥挤城市电脑版玩法教程

    <拥挤城市>是一款极具恶搞的趣味休闲手游,游戏中,最具现代城市的规模建设,繁华的街道,虐心的关卡设计,极具挑战的玩法,多人的实时对战,带领玩家充分享吞噬一切的快感体验.接下来,和小编一起看 ...

  4. 地球 three.js 城市 3d

    地球 three.js 城市 3d 在网上各种学习,特别是一个用vue写的模拟"最好看地球"那个代码,结合自己的思想改出了这个地球,已经能用了,大家学习下. 直接上代码 <! ...

  5. 大型城市综合体建筑智能消防应急照明和疏散系统的具体应用 安科瑞 许敏

    摘要:随着我国社会经济的迅猛发展与城市化建设进程的加快,大型城市综合体建筑越来越多,随之而来的消防安全管理问题不容忽视.智能消防应急照明和疏散系统作为保证人员安全疏散不可或缺的消防设施,是保障消防安全 ...

  6. canvas绘制城市3D模型效果

    下载地址canvas绘制城市3D模型效果HTML5代码,款3D酷炫的城市建筑模型,鼠标长按或拖动穿过建筑模型动画特效. dd:

  7. vr全景黑科技全景智慧城市3D拍摄项目展示魅力城市

    全景智慧城市,多年从事三维全景技术应用的互联网公司,我们利用计算机图形学.多媒体.人工智能和计算机网络技术,深入研发和推广虚拟现实VR技术的行业应用.我们以优质的服务.国际领先的技术团队,为您定制全方 ...

  8. BIM信息技术助力数字孪生城市打造智能化建筑

    8月28日,国家住建部.国家工信部等9个部门联合发文<加速最新型建筑工业化发展的若干意见>,将BIM技术做为发展最新型建筑工业化的主要信息技术手段,BIM的前途可以说是一片大好! BIM以 ...

  9. 装配式建筑连入自动驾驶技术,未来城市的房子居然是这个样子......

    来源:gooood谷德设计网 概念 如果说古典的城市是关于神的,现代城市是关于资本和权力的,那么未来的城市就应该是关于人与自然的. 人在朝朝暮暮,山山水水,风风雨雨,一草一木天地之间无不有感而发,触景 ...

  10. Unity3D RenderTexture实现3D立绘

    NGUI有个Demo,实现了这个功能,UI界面显示一个3D模型,但是这种方法并不具备适用性. 现在我们的项目中还没用到这种超前的3D界面设计,我们常用的UI都是由大堆的UI通过层级堆叠出来的. 那按照 ...

最新文章

  1. java泛型的几个例子
  2. clion register
  3. .Net 3.5新特性(1)Automatic Properties, Object Initializers, and Collection Initializers
  4. mc有什么红石机器人_mc:作为一个mc萌新应该掌握哪些基本功?还需要知道些什么?...
  5. 如何理解“不要通过共享内存来通信,而应该通过通信来共享内存”?
  6. mysql 批量远程_【shell--批量远程MySQL,执行命令】-【工作总结】
  7. 没有required_springboot-使用OpenAPI之后我再也没有写过接口文档
  8. 随机森林筛选特征Matlab,特征筛选(随机森林)
  9. 《Windows 8 权威指南》——1.3 引入全新内核休眠模式,实现“瞬间开机”
  10. LayaAir 性能统计面板 laya.utils.Stat
  11. 远程桌面:6个最实用技巧
  12. Solana首个IDO平台Solstarter前景如何?
  13. https://blog.csdn.net/qq_43412289
  14. 小松的STM32教程(2)—— OLED显示
  15. mysql查询结果作为一个表_例题:数据库查询结果作为一个表
  16. 文档扫描OCR识别_积累
  17. 2018——幸福都是奋斗出来的
  18. 自己设置假期的日历控件_在假期旅行时使用PC娱乐自己
  19. Silverlight 中文教程第二部分:使用布局管理 (木野狐译)
  20. JS处理时间格式国际标准化的方法

热门文章

  1. win10安装opcenum_如何完美的解决win10安装时遇到的问题?
  2. vue 批量下载图片并打包成压缩包
  3. PS--人物皮肤处理流程(一)
  4. 学习帮——懒人菜谱,电饭煲可以做的菜!
  5. Android两种方式实现横向滚动图标+指示器
  6. 工作小记 编译 ffmpeg gpu 版本
  7. AlphaGo灭了整个围棋界 下一步可能灭了散户跟交易员
  8. r730 raid5 linux 驱动,DELL R720安装REDHAT5.1 RAID驱动问题
  9. Java JVM 运行机制及基本原理
  10. Squid中文权威指南-第10章 与其他Squid会话