最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

游戲原型系列 vol.14 通過C#腳本啟動時間軸-2019.3

2020-07-07 17:45 作者:NXL2  | 我要投稿

摘要

在本教程中,我們將通過C#腳本使用Playable Director啟動時間軸。

?

1.通過C#腳本啟動時間軸

通過腳本啟動時間軸可以更好地控制播放哪個時間軸以及何時播放。這對過場動畫和互動電影特別有用。

通過腳本控制Playable Director時,可以在啟動和停止Playable Director時調(diào)用回調(diào)函數(shù)。通常的用法是在過場動畫開始時禁用玩家輸入并阻止NPC /敵人的動作和移動,并在時間軸停止后恢復(fù)游戲狀態(tài)。

我們的腳本還將在時間軸啟動時執(zhí)行一個回調(diào)函數(shù),在時間軸停止時執(zhí)行另一個回調(diào)函數(shù)。

1. 通過從GameObject下拉菜單中選擇Create Empty 創(chuàng)建一個新的GameObject 。將其命名為Director 。

2. 通過從窗口下拉菜單中選擇Sequencing(序列)>Timeline(時間線),打開“時間線”窗口。

3. 在選擇了Director的情況下,單擊Create(創(chuàng)建)來附加一個Playable Director組件并創(chuàng)建一個Timeline Asset(時間軸資產(chǎn))(圖01 )。

圖01:創(chuàng)建Director組件和時間軸資產(chǎn)

4. 添加并配置所需的動畫軌道(圖02 )。

圖02:我們的時間表,帶有一個簡單的飛越動畫

5. 將一個名為TimelinePlayer 的新腳本組件添加到Director中,然后在腳本編輯器中將其打開。

6. 添加UnityEngine.Playables命名空間:

using UnityEngine.Playables;

7. 在類定義中,我們將創(chuàng)建對Playable Director和控制面板的引用:

private PlayableDirector director;

public GameObject controlPanel;

8.將“開始(Start)”更改為“喚醒(Awake)”,然后刪除“更新(Update)”方法。

9. 在Awake中,我們將設(shè)置Playable Director參考并注冊回調(diào)函數(shù),以在Director啟動和停止時調(diào)用它們:

director = GetComponent<PlayableDirector>();

director.played += Director_Played;

director.stopped += Director_Stopped;

在接下來的兩個步驟中定義的Director_Played和Director_Stopped是返回類型為void的函數(shù),其唯一參數(shù)為PlayableDirector類型。

10. 一旦開始播放時間軸,Director_Played將隱藏用于啟動時間軸的UI面板。

private void Director_Played(PlayableDirector obj){

????controlPanel.SetActive(false);

}

11. 時間軸停止后,Director_Stopped將顯示UI面板。

private void Director_Stopped(PlayableDirector obj){

????controlPanel.SetActive(true);

}

12. 最后,我們準(zhǔn)備定義啟動時間軸的函數(shù):

public void StartTimeline(){

????director.Play();

}

13. 完整腳本應(yīng)如下所示:

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

public class TimelinePlayer : MonoBehaviour

{

????private PlayableDirector director;

????public GameObject controlPanel;

?

????private void Awake()

????{

????????director = GetComponent<PlayableDirector>();

????????director.played += Director_Played;

????????director.stopped += Director_Stopped;

????}

?

????private void Director_Stopped(PlayableDirector obj)

????{

????????controlPanel.SetActive(true);

????}

?

????private void Director_Played(PlayableDirector obj)

????{

????????controlPanel.SetActive(false);

????}

?

????public void StartTimeline()

????{

????????director.Play();

????}

}

14. 保存更改并返回Unity編輯器。

15. 通過從GameObject下拉菜單中選擇UI >Button?(按鈕)來創(chuàng)建UI按鈕。

16. 單擊+ 號添加一個OnClick事件。將Director拖到Object 插槽中,然后選擇TimelinePlayer > StartTimeline()(圖03 )。

圖03:添加OnClick事件以啟動時間軸

17. 在“層次結(jié)構(gòu)”視圖中選擇“?Director主管)”。在檢查器的“Timeline Player(時間軸播放器)”組件中,將按鈕或其父畫布拖動到標(biāo)有“ Control Panel(控制面板)” 的插槽中(圖04 )。

圖04:時間軸播放器已配置

18. 進(jìn)入播放模式,然后單擊按鈕以啟動時間軸。時間軸停止時,該按鈕保持可見(圖05 )。在播放時間軸時,它是隱藏的(圖06 )。時間軸完成播放后,該按鈕將再次變?yōu)榭梢姟?/span>

圖05:不播放時間軸時,開始按鈕仍然可見。
圖06:播放時間軸時,該按鈕處于隱藏狀態(tài)。

19. 退出播放模式。

?

2.結(jié)論

時間軸是一個本來就功能強(qiáng)大的系統(tǒng),可通過腳本進(jìn)一步增強(qiáng)。

游戲原型系列 vol.14 通過C#腳本啟動時間軸-2019.3的評論 (共 條)

分享到微博請遵守國家法律
正定县| 高淳县| 化隆| 崇阳县| 金堂县| 上高县| 东乌珠穆沁旗| 娱乐| 辽阳市| 凤山县| 图木舒克市| 鞍山市| 宜阳县| 绍兴市| 井陉县| 健康| 西峡县| 苏尼特右旗| 宜春市| 剑阁县| 沙坪坝区| 香河县| 墨玉县| 五常市| 洪湖市| 华坪县| 烟台市| 景东| 桂阳县| 获嘉县| 延边| 分宜县| 新沂市| 苍梧县| 慈利县| 攀枝花市| 蒙阴县| 千阳县| 星座| 惠东县| 大城县|