首页 > 解决方案 > 如何使用键在天空盒之间切换?

问题描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SkyBox : UnityEngine.MonoBehaviour
{
    public Material[] skyboxes;
    public float moveSpeed = 5f;

    // Use this for initialization
    void Start()
    {
        RenderSettings.skybox = skyboxes[0];
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.S))
        {
            if (RenderSettings.skybox != null && RenderSettings.skybox == skyboxes[1])
            {
                RenderSettings.skybox.SetFloat("_Rotation", Time.time * moveSpeed);
            }
        }
    }
}

第一个问题是如何让它在更新中的天空盒 0 和 1 之间切换?

第二个问题是如何使用默认的天空盒作为索引 0 的天空盒?我在 Assets 中找不到默认的天空盒:

没有默认的天空盒

我现在发现的另一个问题。我的天空盒不是默认的,而是我想切换到的第二个,我无法将它添加到脚本中的公共变量中:

public Skybox skybox;

我也试过:

public Material skybox;

这是天空盒设置:

天空盒

我无法将它拖到检查器中的脚本中。如果变量是 SkyBox 或 Material。

我想要做的是在默认天空盒和这个 Sky_0003 之间一键切换

标签: c#unity3d

解决方案


推荐阅读