public override void OnGestureTapped() { if (positionIsSelected) { ThrowBall(); } if (!playStarted) { Ray cameraRay = LeftCamera.GetScreenRay(0.5f, 0.5f); var result = Scene.GetComponent <Octree>().RaycastSingle(cameraRay, RayQueryLevel.Triangle, 100, DrawableFlags.Geometry, 0x70000000); if (result != null) { if (result.Value.Node.Name.StartsWith("playNode")) { startNode.Remove(); startNode = null; MakeHoop(result.Value.Position); playStarted = true; } } } else { if (surfaceIsValid && !positionIsSelected) { positionIsSelected = true; textNode.Remove(); textNode = null; bucketNode.GetComponent <StaticModel>().ApplyMaterialList("Models/baskethoop.txt"); MakeCollissionHoop(); MakeGameDetailScreen(); } else { Ray cameraRay = LeftCamera.GetScreenRay(0.5f, 0.5f); var result = Scene.GetComponent <Octree>().RaycastSingle(cameraRay, RayQueryLevel.Triangle, 100, DrawableFlags.Geometry, 0x70000000); if (result != null) { if (restartNode != null) { System.Diagnostics.Debug.WriteLine("result.Value.Node.Name " + result.Value.Node.Name); System.Diagnostics.Debug.WriteLine("result.Value.Position " + result.Value.Position); //System.Diagnostics.Debug.WriteLine("restartNode.WorldPosition " + LeftCamera.WorldToScreenPoint(restartNode.WorldPosition)); } if (result.Value.Node.Name.StartsWith("restartNode")) { System.Diagnostics.Debug.WriteLine("restartNode"); } } } } base.OnGestureTapped(); }
Vector3?Raycast() { Ray cameraRay = LeftCamera.GetScreenRay(0.5f, 0.5f); var result = Scene.GetComponent <Octree>().RaycastSingle(cameraRay, RayQueryLevel.Triangle, 100, DrawableFlags.Geometry, 0x70000000); if (result != null) { return(result.Value.Position); } return(null); }
private RayQueryResult?Raycast() { Ray cameraRay = LeftCamera.GetScreenRay(0.5f, 0.5f); return(Scene.GetComponent <Octree>().RaycastSingle(cameraRay, RayQueryLevel.Triangle, 100, DrawableFlags.Geometry, 0x70000000)); }