コード例 #1
0
ファイル: Mirror.cs プロジェクト: bluebackblue/fee_core
        /** ミラー。作成。
         */
        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);
        }
コード例 #2
0
        /** 作成。
         */
        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);
        }