Страница 1 из 1

области с разными настройками постэффектов

СообщениеДобавлено: 27 авг 2014, 20:00
gnoblin
привет
кто-нить кодил систему с областями на уровне?
типа входишь в комнату плавно меняются настройки постэффектов, эмбиент, туман

Re: области с разными настройками постэффектов

СообщениеДобавлено: 17 сен 2014, 22:11
echo
Я делал такое. Не слишком прямруко конечно, зато работает.

Вот этот скрипт вешается на любой объект в уровне, который не будет меняться:

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class AreaSettings : MonoBehaviour {

        public float AreaChangeTime;   
        public Color AmbColor;
        public Color myFogColor;
        public float myFogDenisity;
       
        public Color myCamColor;
        public Color myCamBackColor;
        public float myCamColorDen;
       
        public REPostProcessorEffect myEffect;
       
        void Start(){
                myEffect = Camera.main.GetComponent<REPostProcessorEffect>();
        }
       
        void FixedUpdate () {

                RenderSettings.ambientLight = Color.Lerp (RenderSettings.ambientLight, AmbColor, AreaChangeTime*Time.deltaTime);
                RenderSettings.fogColor = Color.Lerp (RenderSettings.fogColor, myFogColor, AreaChangeTime*Time.deltaTime);
                RenderSettings.fogEndDistance = Mathf.Lerp(RenderSettings.fogEndDistance, myFogDenisity, AreaChangeTime*Time.deltaTime);
                myEffect.BloomTint = Color.Lerp(myEffect.BloomTint, myCamColor, AreaChangeTime*Time.deltaTime);
                myEffect.ColorCorrectionSaturation = myCamColorDen;
                Camera.main.backgroundColor = Color.Lerp(Camera.main.backgroundColor, myCamBackColor, AreaChangeTime*Time.deltaTime);
        }
}
 


А этот на область с триггером:

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class ZoneEnvC : MonoBehaviour {
       
        public AreaSettings area;
        public float changeTime;
        public float timer;
        public float TargetVolume;

        public float aclipVolume = 0.7f;
        public AudioClip aclip;

        public Color EnvColor;
        public Color fogColor;
        public float myDenisity;
       
        public Color camColor;
        public Color camBackColor;
        public float camColorDen = 0.2f;
       
        public void OnTriggerEnter(){

                area.AreaChangeTime = changeTime;
                area.AmbColor = EnvColor;
                area.myFogColor = fogColor;
                area.myFogDenisity = myDenisity;
                area.myCamColor = camColor;
                area.myCamBackColor = camBackColor;
                area.myCamColorDen = camColorDen;
                area.myEffect = Camera.main.GetComponent<REPostProcessorEffect>();     
        }

}



Там ещё специальный постэффект используется, но суть понятна, я думаю. Просто удалить его и всё.

Re: области с разными настройками постэффектов

СообщениеДобавлено: 18 сен 2014, 00:40
gnoblin
пасиба, мы запостим универсальный скриптец чуть позж