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");
}