Unity 實戰項目 ️| Unity實現 天空盒 輪播系列切換

呆呆敲代碼的小Y 2021-09-18 14:14:23 阅读数:134

unity unity 天空 系列

前言

前面簡單寫過兩篇文章介紹了怎樣 在Unity中在代碼中切換 天空盒

切換天空盒還是非常簡單的

那這篇文章就寫了一個簡單的實例做一個稍微花哨一點的 天空盒 切換實例!


天空盒 點擊 輪播切換

先來看一下實現的一個效果,以防沒能看明白我說的意思
請添加圖片描述
因為在場景中想要實現一個可以隨時切換天空盒的效果,所以就想出來這麼一個簡單的辦法

通過在場景中顯示一些個帶有自身天空盒材質的小球,然後點擊他們就可以切換天空盒啦!

下面說一下制作步驟,很簡單的一學就會!


️‍第一步:簡單搭建一個場景

先來在場景搭建一個場景

放上一個平面和四個小圓球
在這裏插入圖片描述
然後找到我們的 天空盒材質球天空盒的圖片,直接拖到小球上即可!

這樣小球就有顏色了
在這裏插入圖片描述


️‍第二步:通過代碼實現點擊小球後切換天空盒

這一步的代碼也很簡單,我們之前的文章中也講過如何通過代碼切換天空盒

所以這裏直接上代碼

public class skyDemo1 : MonoBehaviour,IPointerDownHandler
{

public Material skyMaterial;//天空盒材質
//點擊小球的回調
public void OnPointerDown(PointerEventData eventData)
{

//切換天空盒
RenderSettings.skybox = skyMaterial;
}
}

然後我們把該脚本掛在到每個小球身上,並把自己的天空盒材質添加上去

如下所示:
在這裏插入圖片描述

這個時候我們點擊每個小球就可以切換天空盒啦!

請添加圖片描述


️‍第三步:讓小球旋轉起來

這一步很簡單啦,在Unity中實現旋轉的方法有很多種,這裏就不多說了

這裏使用Unity自帶的API:transform.RotateAround(Vector3,Vector3,float);

  • 第一個參數:旋轉的中心點
  • 第二個參數:中心點的某個軸
  • 第三個參數:旋轉的速度

完整代碼如下:

using UnityEngine;
using UnityEngine.EventSystems;
public class skyDemo1 : MonoBehaviour,IPointerDownHandler
{

public GameObject skyCenter;
public Material skyMaterial;//天空盒材質
public void OnPointerDown(PointerEventData eventData)
{

//切換天空盒
RenderSettings.skybox = skyMaterial;
}
void Update()
{

Revolution();
}
public void Revolution()
{

//繞著某個中心點 的某一個軸,按照一個速度一直旋轉
transform.RotateAround(skyCenter.transform.position, skyCenter.transform.up, Time.deltaTime * 50);
}
}

實現效果如下:
請添加圖片描述


總結

一個簡單的切換天空盒的效果就實現啦~

是不是很簡單呢,如果你有更好的創意也可以給我提提建議哈

我也想多一些更好的創意!!!

如果沒有合適的天空盒資源,可以下載我文章中顯示的這些個天空盒資源

天空盒下載鏈接

版权声明:本文为[呆呆敲代碼的小Y]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210918141422934o.html