Unity 簡易製作 播放 Logo
分類
概述
相信大家很常看到電影、動畫、遊戲等等都會出現 Logo 播放
只有播放短短的幾秒鐘,大概是1~3秒
以下是 Netflix Logo 參考
本篇帶大家如何快速的製作 Logo 動畫
準備素材
本範例會使用一個 mp4 影片檔作為示範
請自行準備一個 mp4 檔來練習
並放到專案裡面,路徑可以自行調整
將影片放到攝影機
放置好後,Unity 會幫 Camera 加入 Video Player 組件和 Audio Listener 組件
切換場景
用程式控制當影片播放完畢後切換場景
以下範例寫一個 CameraController 腳本放在攝影機上
CameraController.cs
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.Video;
/// <summary>
/// 處理攝影機
/// </summary>
public class CameraController : MonoBehaviour
{
private VideoPlayer videoPlayer;
/// <summary>
/// 影片播放完畢,前往下個場景
/// </summary>
[SerializeField]
private string nextSceneName;
IEnumerator Start()
{
// Will attach a VideoPlayer to the main camera.
videoPlayer = transform.GetComponent<VideoPlayer>();
// Each time we reach the end
videoPlayer.loopPointReached += EndReached;
// Wait for the video to be prepared
videoPlayer.prepareCompleted += VideoPrepareCompleted;
// 播放遊戲時,載入資源期間會播放影片,所以故意讓他延遲一秒再播放影片
yield return new WaitForSeconds(1);
videoPlayer.Prepare();
}
/// <summary>
/// 動畫播放完畢後呼叫
/// </summary>
/// <param name="videoPlayer"></param>
void EndReached(VideoPlayer videoPlayer)
{
SceneManager.LoadScene(nextSceneName);
}
/// <summary>
/// 等待影片準備可以播放為止
/// </summary>
private void VideoPrepareCompleted(VideoPlayer videoPlayer)
{
videoPlayer.Play();
}
}
程式說明
因為我們腳本會放在攝影機,所以可以取得攝影機上的 VideoPlayer 組件。
videoPlayer.loopPointReached += EndReached;
就是影片播放完畢後就會執行 EndReached
方法,如果影片是循環播放,就會不斷執行EndReached
方法。
在 EndReached
方法裡面執行切換場景的程式,就是等影片播放完畢後就切換場景。
yield return new WaitForSeconds(1);
目的是解決在 Unity Editor 點擊 Play 的時候,假設影片會立即播放,這會導致 Play 在載入資源時就在播放影片,造成影片沒有完整播放,影片會跳過等待資源的時間,所以使用等待一秒解決這個問題。
videoPlayer.prepareCompleted += VideoPrepareCompleted;
是當 videoPlayer.Prepare();
準備完畢後觸發的方法。
結論
這個簡易的播放 Logo 動畫,也可變成播放 Unity 裡面的 Animation
然後再切換場景,透過這個簡單的範例,讓大家聯想其他的製作 Logo 的方法
一杯咖啡的力量,勝過千言萬語的感謝。
支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!