博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity中使用射线查询MeshCollider背面的方法
阅读量:6571 次
发布时间:2019-06-24

本文共 958 字,大约阅读时间需要 3 分钟。

之前遇到一个问题要从MeshCollider背面方向发出射线,直至检测到该射线与MeshCollider的相交点为止。

后来我用双面MeshCollider的方法解决了

 

但是这样又会导致许多其他问题,因为构建出来的双面MeshCollider是非临时性的。

后来我发现unity提供了一个接口Physics.queriesHitBackfaces(Unity5.5之后增加),可以解决这个问题。

 

 

测试脚本

using System.Collections;using System.Collections.Generic;using UnityEngine;public class RaycastTest : MonoBehaviour{    GameObject mCacheTipsGO;    void Start()    {        mCacheTipsGO = GameObject.CreatePrimitive(PrimitiveType.Cube);        mCacheTipsGO.transform.localScale = Vector3.one * 0.3f;        Destroy(mCacheTipsGO.GetComponent
()); } void Update() { Physics.queriesHitBackfaces = true; var raycast = default(RaycastHit); var isHit = Physics.Raycast(new Ray(transform.position, transform.forward), out raycast, 20); if (isHit) mCacheTipsGO.transform.position = raycast.point; Physics.queriesHitBackfaces = false; }}

 

 

测试结果

转载于:https://www.cnblogs.com/hont/p/8854021.html

你可能感兴趣的文章
长生界
查看>>
MOTO XT702添加开机音乐
查看>>
console.dir()和console.log()的区别
查看>>
Netty之ByteBuf
查看>>
Codeforces Round #565 (Div. 3) C. Lose it!
查看>>
Python脚本日志系统
查看>>
drupal相关博客 (积累)
查看>>
Spring异常——BeanNotOfRequiredTypeException
查看>>
B0BO TFS 安装指南(转载)
查看>>
gulp常用命令
查看>>
TCP(Socket基础编程)
查看>>
RowSet的使用
查看>>
表单提交中的input、button、submit的区别
查看>>
每日一记--cookie
查看>>
约瑟夫环
查看>>
S5:桥接模式 Bridge
查看>>
线程池-Executors
查看>>
WPF and Silverlight 学习笔记(十二):WPF Panel内容模型、Decorator内容模型及其他...
查看>>
Codeforces 414B
查看>>
FLUSH TABLES WITH READ LOCK 和 LOCK TABLES比较
查看>>