CM3D2.SubScreen.Plugin.SubScreen.createScreen C# (CSharp) Method

createScreen() private method

private createScreen ( ) : void
return void
        private void createScreen()
        {
            DebugLog("createScreen", "start");
            goSubScreen = GameObject.CreatePrimitive(PrimitiveType.Cube);
            goSubScreen.layer = SubScreenLayer;
            goSsFrontFilter = GameObject.CreatePrimitive(PrimitiveType.Cube);
            SetRendererEnabled(goSsFrontFilter, false);
            goSsFrontFilter.layer = SubScreenLayer;
            goSsFrontFilter.transform.SetParent(goSubScreen.transform);
            goSsFrontFilter.transform.localScale = new Vector3(1f, 1f, 0.001f);
            goSsFrontFilter.transform.localPosition += new Vector3(0, 0, 0.001f);
            goSsFrontFilter.GetComponent<Renderer>().material.shader = Shader.Find("Transparent/Diffuse");
            goSubScreen.transform.localScale = new Vector3(1f, 1f, 0.01f);
            goSsLight = new GameObject();
            goSsLight.transform.localPosition += new Vector3(0, 0.5f, 0.5f);
            Light ssLight = goSsLight.AddComponent<Light>();
            ssLight.enabled = false;
            ssLight.GetComponent<Light>().type = LightType.Directional;
            ssLight.GetComponent<Light>().transform.LookAt(goSubScreen.transform);
            ssLight.GetComponent<Light>().cullingMask &= ~(1 << LayerMask.NameToLayer("Default"));
            ssLight.GetComponent<Light>().cullingMask &= ~(1 << LayerMask.NameToLayer("BackGround"));
            ssLight.GetComponent<Light>().cullingMask &= ~(1 << LayerMask.NameToLayer("Charactor"));
            ssLight.intensity = 0.5f;
            goSsLight.transform.SetParent(goSubScreen.transform);
            SetRendererEnabled(goSubScreen, false);

            goSubCam = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            SetRendererEnabled(goSubCam, false);
            goSubCam.transform.localScale = new Vector3(0.03f, 0.03f, 0.03f);
            Camera cam = goSubCam.AddComponent<Camera>();
            cam.cullingMask &= ~(1 << SubScreenLayer);
            cam.enabled = false;
            cam.depth = 9;
            cam.rect = new Rect(0f, 0f, 1f, 1f);
            goSubLight = new GameObject("sub light");
            goSubLight.AddComponent<Light>();
            goSubLight.transform.SetParent(goSubCam.transform);
            goSubLight.GetComponent<Light>().type = LightType.Spot;
            goSubLight.GetComponent<Light>().range = 10;
            goSubLight.GetComponent<Light>().enabled = false;
            goSubLight.GetComponent<Light>().cullingMask &= ~(1 << SubScreenLayer);

            rTex = new RenderTexture(
                Screen.width / RenderTextureScale,
                Screen.height / RenderTextureScale,
                24);
            cam.targetTexture = rTex;

            goSubScreen.GetComponent<Renderer>().material.mainTexture = rTex;
            goSubCam.GetComponent<Renderer>().material.shader = Shader.Find("Transparent/Diffuse");
            goSubScreen.GetComponent<Renderer>().material.shader = Shader.Find("Transparent/Diffuse");

            Transform mainTransform = GameMain.Instance.MainCamera.transform;
            goSubCam.transform.position = mainTransform.position;
            goSubCam.transform.eulerAngles = mainTransform.eulerAngles;

            StartCoroutine(SetLocalTexture
                 (goSubCam, Application.dataPath + "/../UnityInjector/Config/SubScreenCamera.png"));
            StartCoroutine(SetLocalTexture
                 (goSsFrontFilter, Application.dataPath + "/../UnityInjector/Config/SubScreenFilter.png"));

            screenCreated = true;
            DebugLog("createScreen", "end");
        }