//previewの用意 private void previewSetup() { previewObject = expansion.GetBuiltObject((StageGenerator.Built)previewNumber); //previewObject.hideFlags = HideFlags.HideAndDontSave; previewObject.SetActive(true); var flags = BindingFlags.Static | BindingFlags.NonPublic; var propInfo = typeof(Camera).GetProperty("PreviewCullingLayer", flags); int previewLayer = (int)propInfo.GetValue(null, new object[0]); previewRenderUtility = new PreviewRenderUtility(true); previewRenderUtility.AddSingleGO(previewObject); //FieldOfView を 30 にするとちょうどいい見た目になる previewRenderUtility.cameraFieldOfView = 30f; //必要に応じて nearClipPlane と farClipPlane を設定 previewRenderUtility.camera.nearClipPlane = 0.3f; previewRenderUtility.camera.farClipPlane = 1000; //previewLayer のみ表示する previewRenderUtility.camera.cullingMask = 1 << previewLayer; var previewCamera = previewRenderUtility.camera; previewCamera.transform.position = previewObject.transform.position + new Vector3(2.5f, 2.5f, -5); previewCamera.transform.LookAt(previewObject.transform); previewCamera.clearFlags = CameraClearFlags.Skybox; previewCamera.backgroundColor = new Color(0.9f, 0.9f, 0.9f); previewObject.layer = previewLayer; foreach (Transform transform in previewObject.transform) { transform.gameObject.layer = previewLayer; } }