u3d目标与摄像机之间的遮挡物变为透明
2017-04-20 15:29
197 查看
摄像机和目标物体连接一个射线,然后射线碰到的物体的Transparent/Diffuse全部设为半透明
using System.Collections; using System.Collections.Generic; using UnityEngine; public class XrayCameral : MonoBehaviour { public Transform tar; public List<Renderer> listLastRend = new List<Renderer>(); // Use this for initialization void Start () { } // Update is called once per frame void Update () { for (int i = 0; i < listLastRend.Count; i++) { TransparencySet(listLastRend[i], 1.0f); } Vector3 tarDir = (tar.position - transform.position).normalized; Debug.DrawLine(tar.position, transform.position, Color.red); float tarDis = Vector3.Distance(tar.position, transform.position); RaycastHit[] listHitObj = Physics.RaycastAll(transform.position, tarDir, tarDis); Debug.Log(listHitObj.Length); for (int i = 0; i < listHitObj.Length; i++) { RaycastHit hit = listHitObj[i]; if (hit.transform == tar.transform) { continue; } Renderer renderer = hit.collider.GetComponent<Renderer>(); listLastRend.Clear(); if (renderer) { listLastRend.Add(renderer); TransparencySet(renderer,0.3f); } } } void TransparencySet(Renderer renderer,float a) { renderer.material.shader = Shader.Find("Transparent/Diffuse"); renderer.material.color = new Color(renderer.material.color.r, renderer.material.color.g, renderer.material.color.b, a); } }
相关文章推荐
- (转载)Unity3D研究院之处理摄像机与角色之间被挡时的局部透明效果
- Unity3D研究院之处理摄像机与角色之间被挡时的局部透明效果
- 游戏中检测摄像机与人之间有无带碰撞器的遮挡物
- UIView基础动画(推荐多使用Block)---能实现很多效果,透明--不透明 缩放--从无到整 Block之间添加代码也就是开始动画与结束动画之间
- U3D 摄像机镜头控制
- 导航栏变为透明,让黑线消失的方法
- javascript 模块点击抖动之后变为透明
- 如何使用Photoshop(PS)将图片的底色变为透明
- Spring中使用@Async注解使Even监听事件之间的执行变为异步
- Team Foundation : 合并的目标分支选项及如何在团队项目之间迁移更改
- 使用Caffe对摄像机视频流中的目标进行识别
- Spring 下透明的让POJO 变为支持JMX的MBean
- Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换
- Unity3D里实现物体移动到目标点,并且摄像机跟着移动的简单方案
- 摄像机模型与标定——三个坐标系及其之间关系
- 过程、性能基线、性能模型与目标之间的关系
- Qt实现当鼠标移动到窗体上,窗体由半透明变为不透明
- 使用iframe框架后的页面跳转时目标页面变为iframe的子页面的问题
- 基于EasyDarwin云平台实现的EasyClient客户端与EasyCamera摄像机之间的对讲与云台控制功能
- Photoshop制作Android UI: 怎样将图片背景变为透明