try { var cam = UnityEngine.Camera.main; if (cam == null) { UnityEngine.Debug.LogError( "[GB] Main Camera not found"); } else { // 立方体を生成 var cube = UnityEngine.GameObject.CreatePrimitive( UnityEngine.PrimitiveType.Cube); cube.name = "GreenCube_Wall"; // カメラを立方体の中心に配置 cube.transform.position = cam.transform.position; cube.transform.rotation = UnityEngine.Quaternion.identity; // 立方体のサイズ float size = 10f; cube.transform.localScale = new UnityEngine.Vector3(size, size, size); // URP Litシェーダーを取得 var shader = UnityEngine.Shader.Find( "Universal Render Pipeline/Lit"); if (shader == null) { UnityEngine.Debug.LogError( "[GB] URP Lit shader not found"); UnityEngine.Object.Destroy(cube); } else { var mat = new UnityEngine.Material(shader); // 緑色に設定 mat.color = UnityEngine.Color.green; if (mat.HasProperty("_BaseColor")) { mat.SetColor( "_BaseColor", UnityEngine.Color.green); } // 裏面も描画して内側から見えるようにする if (mat.HasProperty("_Cull")) { mat.SetInt( "_Cull", (int)UnityEngine.Rendering.CullMode.Off); } mat.doubleSidedGI = true; var renderer = cube.GetComponent(); renderer.material = mat; renderer.enabled = true; // 当たり判定を削除 var collider = cube.GetComponent(); if (collider != null) { UnityEngine.Object.Destroy(collider); } UnityEngine.Debug.Log( "[GB] Green cube room created"); UnityEngine.Debug.Log( "[GB] Position = " + cube.transform.position); UnityEngine.Debug.Log( "[GB] Scale = " + cube.transform.localScale); UnityEngine.Debug.Log( "[GB] Shader = " + mat.shader.name); } } } catch (System.Exception e) { UnityEngine.Debug.LogError( "[GB] ERROR: " + e); }