/** ミラー。作成。 */ public MirrorObject_MonoBehaviour CreateMirror(Fee.Mirror.RenderTextureSizeType a_size_type, UnityEngine.GameObject a_mirror_object, UnityEngine.Camera a_look_camera, string a_name) { if (a_mirror_object != null) { MirrorCamera_MonoBehaviour t_mirror_camera = MirrorCamera_MonoBehaviour.Create(a_size_type, a_name); //ミラーマテリアル。設定。 UnityEngine.Renderer t_renderer = a_mirror_object.GetComponent <UnityEngine.Renderer>(); if (t_renderer != null) { UnityEngine.Shader t_shader = UnityEngine.Shader.Find(Config.SHADER_NAME_MIRROR); if (t_shader != null) { t_renderer.material = new UnityEngine.Material(t_shader); t_renderer.material.SetTexture("texture_mirror", t_mirror_camera.GetRenderTexture()); } else { Tool.Assert(false); } } else { Tool.Assert(false); } //ミラーオブジェクト。設定。 MirrorObject_MonoBehaviour t_mirror_object = a_mirror_object.AddComponent <MirrorObject_MonoBehaviour>(); { t_mirror_object.mirror_camera = t_mirror_camera; t_mirror_object.look_camera = a_look_camera; t_mirror_object.look_transform = a_look_camera.GetComponent <UnityEngine.Transform>(); t_mirror_object.enabled = false; } return(t_mirror_object); } else { Tool.Assert(false); } return(null); }
/** 作成。 */ public static MirrorCamera_MonoBehaviour Create(Fee.Mirror.RenderTextureSizeType a_size_type, string a_name) { MirrorCamera_MonoBehaviour t_this; { UnityEngine.GameObject t_gameobject = new UnityEngine.GameObject(a_name); t_this = t_gameobject.AddComponent <MirrorCamera_MonoBehaviour>(); t_this.raw_gameobjet = t_gameobject; { //rendertexture { int t_size; switch (a_size_type) { case Fee.Mirror.RenderTextureSizeType.Size_128: { t_size = 128; } break; case Fee.Mirror.RenderTextureSizeType.Size_256: { t_size = 256; } break; case Fee.Mirror.RenderTextureSizeType.Size_512: { t_size = 512; } break; case Fee.Mirror.RenderTextureSizeType.Size_1024: { t_size = 1024; } break; case Fee.Mirror.RenderTextureSizeType.Size_2048: { t_size = 2048; } break; default: { Tool.Assert(false); t_size = 1024; } break; } t_this.raw_rendertexture = new UnityEngine.RenderTexture(t_size, t_size, 16, UnityEngine.RenderTextureFormat.ARGB32); t_this.raw_rendertexture.isPowerOfTwo = true; } //raw_camera { t_this.raw_camera = t_gameobject.AddComponent <UnityEngine.Camera>(); t_this.raw_camera.Reset(); t_this.raw_camera.SetTargetBuffers(t_this.raw_rendertexture.colorBuffer, t_this.raw_rendertexture.depthBuffer); t_this.raw_camera.enabled = false; } //plane_offset t_this.plane_offset = 0.0f; } } return(t_this); }