SpatialMap_Dense_BallGame¶
演示如何使用稠密空间地图。
演示如何渲染稠密空间地图网格
演示如何使用稠密空间地图实现碰撞和遮挡
用法¶
标记1:显示系统状态和操作提示。
标记2:是否让网格透明。
标记3:是否渲染网格。
点击屏幕会射出球体。在mesh生成之后可以将球打到mesh上。
详解¶
构建dense spatial map¶
在session中有一个 DenseSpatialMapBuilderFrameFilter 运行的情况下可以构建 dense spatial map。
开关mesh渲染¶
DenseSpatialMapBuilderFrameFilter.RenderMesh 可以控制mesh渲染的开关。
public void RenderMesh(bool show)
{
...
dense.RenderMesh = show;
}
渲染透明mesh¶
DenseSpatialMapBuilderFrameFilter.MeshColor 可以控制mesh的颜色,包括 alpha 通道值。
public void TransparentMesh(bool trans)
{
...
dense.MeshColor = trans ? Color.clear : meshColor;
}
发射球体¶
从 camera发射球体,它们会由 Unity 的物理系统驱动。
Ray ray = Camera.main.ScreenPointToRay(Input.touches[0].position);
var launchPoint = Camera.main.transform;
var ball = Instantiate(Ball, launchPoint.position, launchPoint.rotation);
var rigid = ball.GetComponent<Rigidbody>();
rigid.velocity = Vector3.zero;
rigid.AddForce(ray.direction * 15f + Vector3.up * 5f);