【发布时间】:2019-03-09 01:28:50
【问题描述】:
好的,我在默认图层上有 2 个对象,我需要在光线投射碰撞时触发跳跃。我可以看到光线投射与平台相交:
这是我在平台上的对撞机:
但没有打印任何内容:
Vector3 rotation = transform.forward;
RaycastHit hit;
Debug.DrawRay(new Vector3(transform.position.x, transform.position.y + 0.4f, transform.position.z), rotation, Color.green);
if (Physics.Raycast(new Vector3(transform.position.x, transform.position.y + 0.4f, transform.position.z), rotation, out hit, rayDistance))
{
print(hit.transform);
if (hit.transform.GetComponent<Platform>() != null)
{
Jump(hit.transform);
}
}
这里有什么问题?
【问题讨论】:
-
什么是
rayDistance? -
Debug.DrawRay的长度不一定与Physics.RayCast的长度相同。确保它们确实在碰撞 -
@Savaria 你是什么意思?我怎样才能看到实际的光线投射是什么或它们是否发生碰撞?
-
@Immersive 1.2f
-
光线的长度存储在两个函数中的不同变量中。在
Physics.Raycast中,它位于 maxDistance 中。在Debug.DrawRay中是方向向量的长度。
标签: c# unity3d game-physics