[]关于射线碰撞的问题,对于射线的罗辑方式不太了解,懂得进来帮忙看一下!~~~~~~~~~~


QQ图片20170828213936.png

谁来帮看一看,万分感谢。
已邀请:

ltmking

赞同来自: cuixueying

问题解决了,实现了角色的高度随地形高低起伏而改变,分享一下
//创建一条射线
ray2 = new Ray(new Vector3(0,0,0),new Vector3(0,-10,0));
//创建碰撞信息
rayCastHit2 =new RaycastHit();
 
//针循环
public function _update():void {
    //刷新人物位置,_position是缓动函数实时更新的坐标
    roleModel.transform.position = _position;
    //设置射线原点
    ray2.origin=new Vector3(roleModel.transform.position.x, roleModel.transform.position.y+10, roleModel.transform.position.z);
   //物理射线与碰撞器相交检测
   Physics.rayCast(ray2, rayCastHit2, 300);
            
   if(rayCastHit2.sprite3D)
   {
       //这里取碰撞点的y值给角色重新赋值
       var currPosition:Vector3 = new Vector3(_position.x, rayCastHit2.position.y, _position.z);
       roleModel.transform.position = currPosition;
   }
            
   //刷新摄像机位置
   camera.transform.position=new Vector3(roleModel.transform.position.x, roleModel.transform.position.y + cameraY, roleModel.transform.position.z - cameraZ);
}

ltmking

赞同来自:

我是想在人物的上方20米的地方到人物下方20米的地方做一条垂直的竖线跟着人物x,z坐标改变而改变,这样就可以碰撞到地图模型取到碰撞点的y值赋值给人物,就可以实现人物的高度随地图高低起伏而改变

Monica - 知识达人

赞同来自:

赞~\(≧▽≦)/~

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作