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替换成透明材质球

github.com/jambestwick
持续更新unity3d用法

转载文章,原文https://blog.csdn.net/qq_37254525/article/details/106995345

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

  1. SketchUp 2019 建筑透视剖面图教程

    作者:OU Graphics 今天与大家分享OU Graphics出品的 SketchUp 2019 建筑透视剖面图教程 我们都喜欢剖面分析图,因为它便于我们展示项目的思路. 但是你知道什么比剖面更好 ...

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

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

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

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

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

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

  5. 地球 three.js 城市 3d

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

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

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

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

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

  8. Unity3D:2D/3D 项目

    推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 2D 还是 3D 项目 无论是创建 2D 还是 3D 游戏,Unity 都很拿手.在 Unity 中创建新项目时, ...

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

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

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

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

最新文章

  1. R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析、每个预测因子对响应变量的贡献
  2. 何恺明大神新作:一种用于目标检测的主流ViT架构,效果SOTA
  3. [算法]一次商品交易利益最大化
  4. 深度学习中的激活函数与梯度消失
  5. 编译原理实验语义分析_「编译原理」LL(1)文法分析,简单优先分析
  6. pbs 写matlab作业,pbs提交作业
  7. vue.js 入门案例,双向绑定实现任务清单
  8. 3529: [Sdoi2014]数表 - BZOJ
  9. 新浪微博客户端(26)-添加转发评论工具条
  10. 第四季-专题5-内核模块开发
  11. SQL Server Collation介绍及其变更对数据的影响
  12. 2013Esri全球用户大会QA之GIS发展状况和趋势
  13. WinFlash AwdFlash分析
  14. canvas教程8-小球连线之碰壁则返
  15. 运用js计算个人税收
  16. 系统调用号(eax 调用号) 及 EAX、ECX、EDX、EBX寄存器的作用
  17. PLB: Congestion Signals are Simple and Effective for Network Load Balancing读后思考
  18. 分销代理商管理系统有哪些功能?
  19. EXCEL表格-“魔法操作”之智能填充(数据提取)
  20. Ubuntu服务器上运行mma,一、MMA概述

热门文章

  1. 推荐三款好用的终端开发平台
  2. 计算机主机配置图示,2020台式电脑组装配置单图
  3. CS61C Spring 2021——Project 3: CS61CPU要求及实现思路
  4. QT概念详解及开发入门简介
  5. 正确介绍自己的项目,终于不用害怕面试了
  6. spec之install
  7. android 监听本机网络请求_前端系列课程(2)-网络基础概念(URL)
  8. HTML表单元素、标签、iframe内联框架 详细代码图解
  9. 复习vue+前后端分离开发
  10. 掌握Haproxy原理并搭建