Exemple #1
0
        public void Generate()
        {
            GoUtils.ClearTransformChilds(transform);
            Func <string, GameObject> findGo = name => {
                var t = transform.Find(name);
                if (t != null)
                {
                    return(t.gameObject);
                }
                return(null);
            };

            foreach (var s in sprites)
            {
                var go = findGo(s.name);
                if (go == null)
                {
                    go = GoUtils.AddAnEmptyGameObject(s.name, transform);
                }
                var renderer = go.GetComponent <SpriteRenderer>();
                if (renderer == null)
                {
                    renderer = go.AddComponent <SpriteRenderer>();
                }
                renderer.sprite = s;
            }
        }
Exemple #2
0
    public void OnEnable()
    {
        Color clearColor = new Color(0f, 0f, 0f, 0f);

        //Set up catch cameras.
        runtimeDatasMap.Clear();
        foreach (var pair in lightLayerMap)
        {
            var runtimeData = new LayerRuntimeData();
            var go          = GoUtils.AddAnEmptyGameObject("Catch " + pair.Key, transform);
            var camera      = CameraUtils.AddRenderCamera(go, pair.Value.catchLayer);
            camera.depth             = -2;
            camera.backgroundColor   = clearColor;
            runtimeData.catchCamera  = camera;
            runtimeData.catchTexture = ScreenTextureAllocator.generateRenderTexture();
            runtimeData.catchCamera.targetTexture = runtimeData.catchTexture;
            StartCoroutine(UpdateRuntimeData(runtimeData));
            runtimeDatasMap.Add(pair.Key, runtimeData);
        }
        MixEffect.SetLightMixShader(LightMixMesh);
        MixEffect.SetScreenMixShader(ScreenMix);
        BlurEffect.SetShader(BlurShader);
        finalTexture = ScreenTextureAllocator.generateRenderTexture();
        layers       = new List <string>(lightLayerMap.Keys);
        layers.Sort((ll, rl) => lightLayerMap[ll].depth.CompareTo(lightLayerMap[rl].depth));
        originMainCameraCullingMask = Camera.main.cullingMask;
        Camera.main.cullingMask     = finalTexLayerMask;
    }
Exemple #3
0
    public void SetSprite(SpriteRenderer sr)
    {
        sr.gameObject.layer = LayerMask.NameToLayer(layer);
        sr.sortingLayerName = sortingLayer;
        sr.sortingOrder     = sortingOrder;
        var parallaxMove = GoUtils.GetOrAddComponent <ParallaxMove>(sr.gameObject);

        parallaxMove.degrees    = parallaxMoveDegree;
        parallaxMove.basePosGet = () => VectorUtils.V32(Camera.main.transform.position);
        Func <Vector2>   srPosGet = () => VectorUtils.V32(sr.transform.position);
        Action <Vector2> srPosSet = (pos) => sr.transform.position = VectorUtils.V23(pos, sr.transform.position.z);

        parallaxMove.pivotRef = new ClassRef <Vector2>(srPosSet, srPosGet);
    }