前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小功能⭐️Unity动态更换天空盒、旋转天空盒

小功能⭐️Unity动态更换天空盒、旋转天空盒

作者头像
星河造梦坊官方
发布2024-08-16 08:38:46
620
发布2024-08-16 08:38:46
举报
文章被收录于专栏:星河造梦坊专栏

🟥 Unity动态更换天空盒

1️⃣ 方法1

1、在摄像头上添加SkyBox组件 放到其他地方不管用。 2、创建SkyBox类型的的材质球。放入即可。 3、通过代码,你便可获取到SkyBox组件,便可动态更换天空盒了。

2️⃣ 方法2

🟧 旋转天空盒

该功能不按照“一、更换天空盒”那样设置,该功能实现步骤如下:

1、主摄像机——Camera——ClearFlags——DontClear

2、新建辅助摄像机:

代码语言:javascript
复制
  a、Camera——CullingMask——Nothing

  b、Depth:设置的比主摄像机小

  c、添加 Skybox 组件,在该组件赋值你想看到的天空盒。

3、现在旋转辅助摄像头,就能看到效果了

小Demo: 效果:

代码:

代码语言:javascript
复制
using UnityEngine;
 
public class Skode_SkyBox : MonoBehaviour
{
    public string intro = @" * 功能:旋转天空盒,自动切换天空盒";
 
    [Tooltip("天空盒摄像头")]
    public Transform skyboxCamera;
 
    [Tooltip("旋转速度")]
    public float speed = 0.1f;
 
    [Tooltip("你想切换的天空盒")]
    public Material[] skybox;
 
    [Tooltip("延迟xs切换天空盒")]
    public float time = 3;
    float time_value;
    int current = 0;
 
    private void Start()
    {
        time_value = time;
    }
 
    void Update()
    {
        skyboxCamera.Rotate(skyboxCamera.up, speed);
 
        if (skybox.Length == 0)
            return;
 
        if (time > 0)
            time -= Time.deltaTime;
        else
        {
            current++;
            if (current == skybox.Length)
                current = 0;
            skyboxCamera.GetComponent<Skybox>().material = skybox[current];
 
            time = time_value;
        }
    }
}

大家还有什么问题,欢迎在下方留言!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🟥 Unity动态更换天空盒
    • 1️⃣ 方法1
      • 2️⃣ 方法2
      • 🟧 旋转天空盒
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档