相关疑难解决方法(0)

在Unity中使用层和位掩码与Raycast

Unity的Raycast函数有一个参数可用于光线投射到特定的GameObject.您还可以使用该参数来忽略特定的GameObject.

例如,Raycast功能:

public static bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
Run Code Online (Sandbox Code Playgroud)

layerMask参数用于指定哪些对象应该/不应该接收光线投射.


1.如何光线投射到名为"立方体"的图层中的特定 GameObject?

2.如果你在场景中有10个 GameObjects,但是你只想光线投射到2个 GameObjects并忽略其余的那些?你是怎样做的?

假设那些对象的层是"立方体"和"球体".

3.如果你想要对所有 GameObjects 进行光线投射但忽略1,那该怎么办?

假设要忽略的GameObject位于"立方体"层中.

4.如果你想要对所有 GameObjects 进行光线投射但忽略2个(多个)GameObjects,那该怎么办?

同样,要忽略的层是"立方体"和"球体"层.

c# bitmask unity-game-engine raycasting

4
推荐指数
1
解决办法
6280
查看次数

标签 统计

bitmask ×1

c# ×1

raycasting ×1

unity-game-engine ×1