FeastSC 发表于 2022-4-26 11:26

Unity Physics.Raycast踩坑

关键点:发射射线的起点坐标是世界坐标

关键点:发射射线的起点坐标是世界坐标

关键点:发射射线的起点坐标是世界坐标


下面在来看一下参数:
origin                              【重点】世界坐标系中的射线起点.direction                           射线的方向.hitInfo                           射线碰撞体的信息.maxDistance                         射线碰撞检测的最大距离.layerMask                           过滤层.queryTriggerInteraction             指定此查询是否应命中触发器.
具体检查方法:
private void AvoidCrossWall()    {      Vector3 cameraWorldPosition = transform.TransformPoint(cameraTransform.localPosition);      Vector3 boshiWorldPosition = transform.TransformPoint(boshiTransform.localPosition);      Vector3 dir = boshiWorldPosition - cameraWorldPosition;      RaycastHit hit;                if (Physics.Raycast(cameraWorldPosition, dir, out hit, dir.magnitude))      {            Debug.Log("----Raycast------" + hit.collider.name);      }            }
上面这段代码的意思是,从摄像机位置,发射一条射线,方向是向着boshiTransform这个物体的,射线长度为摄像机和boshiTransform这个物体之间的长度。
由于我上面的摄像机和物体,都是子物体,所以需要转成世界坐标。
页: [1]
查看完整版本: Unity Physics.Raycast踩坑