将Unity Light探针交换到另一种预先烘焙的

时间:2016-03-20 06:56:14

标签: c# unity3d lighting

手册说(Light Probes)"可以在运行时交换到不同的预先烘焙过的。"

http://docs.unity3d.com/ScriptReference/LightmapSettings-lightProbes.html

这是怎么做到的? gameObject.GetComponent<LightProbes>();不会返回附加gameObject的光探针并公开LightProbes并在编辑器中手动分配它也不会。有什么帮助吗?

我目前的剧本:

using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;

public class LightProbeTest : MonoBehaviour {

    LightProbes lPGroup1;
    LightProbes lPGroup2;

    void Start()
    {
        SceneManager.LoadSceneAsync("LP_Test1", LoadSceneMode.Additive);
        SceneManager.LoadSceneAsync("LP_Test2", LoadSceneMode.Additive);

        StartCoroutine(WaitForLoad());
    }

    IEnumerator WaitForLoad()
    {
        yield return new WaitForSeconds(2);

        GameObject go1 = GameObject.Find("LP_1");
        GameObject go2 = GameObject.Find("LP_2");
        lPGroup1 = go1.GetComponent<LightProbes>();
        lPGroup2 = go2.GetComponent<LightProbes>();

        StartCoroutine(SwapLightProbes());
    }

    IEnumerator SwapLightProbes()
    {
        LightmapSettings.lightProbes = lPGroup1;
        yield return new WaitForSeconds(1);

        LightmapSettings.lightProbes = lPGroup2;
        yield return new WaitForSeconds(1);

        StartCoroutine(SwapLightProbes());

    }
}

0 个答案:

没有答案