我是靠谱客的博主 秀丽火龙果,最近开发中收集的这篇文章主要介绍Unity RayCast容易忽视的地方,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近用RayCast做自由建筑系统


遇到两个平时没注意的地方。

(1)RayCast默认是可以Cast到Trigger的,我以为不会,但是实际上,是可以的,如果要屏蔽掉Trigger,设置最后一个参数为: QueryTriggerInteraction.Ignore

(2)官方给了一个Note,但是我没有注意到“Notes: Raycasts will not detect Colliders for which the Raycast origin is inside the Collider.

这是他娘的啥意思?就是说,如果射线从Collider内部发出,那么这个Coiilder会被Ignore掉。

这条完全被我忽略掉了,白白琢磨了一个多小时。特意拿出来记录一下,省的下次再犯……

这就是我检测不到已经被占用的Slot的主要原因!!!!

真是Fuck了。


其他常见问题:

(3)RayCast可以通过层过滤,这个就很简单了,只是记录一下,想要在指定的层里面做RayCast,用 LayerMask.GetMask("Default","Buildings"),这个是支持可变参数的,也不用每次搞一个字符串数组。

(4)FPS游戏射击射线怎么搞?

      Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0));
            RaycastHit result;
            if (Physics.Raycast(ray, out result, 1000, LayerMask.GetMask("Enemy")))


用Camera.main.ScreenPointToRay这个函数,创建一射线,用这个射线去RayCast即可。当然,这是没考虑弹道的激光炮,如果设计弹道,还要将弹道函数考虑进去。

最后

以上就是秀丽火龙果为你收集整理的Unity RayCast容易忽视的地方的全部内容,希望文章能够帮你解决Unity RayCast容易忽视的地方所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部