Table of Contents

Avatar範本

透過Avatar範本,您能學習到:

1.透過腳本更換使用者Avatar模型、掛載配件,以及播放自定義動畫。

2.場景與任務的結合,上述每一項功能皆設計成一個關卡,通過三個關卡即完成任務。

準備工作

1.匯入範例場景

匯入範例場景

2.於創作品管理網站建立場景,例如Tutorial_Avatar,可參考 創作品管理-場景管理

3.匯入任務樣板tutorial-avatar,可參考 創作品管理-任務管理

匯入任務樣板

測試流程

1.設定Config面板的Active Template。

2.設定Scene、Assembly Definition、Preview Image、Animation Clip等欄位,相關檔案放置於Assets/TutorialAvatar目錄下。

3.點選Test按鈕。

Config面板設定

場景配置

1.三個關卡由上至下分別是更換使用者Avatar模型、掛載配件,以及播放自定義動畫。完成關卡會關閉該關卡的GameObject,讓Avatar往下掉落到下一關卡。

2.關卡控制腳本為LevelManager.cs、Avatar改動腳本為AvatarController.cs,分別掛載於場景中的LevelManager GameObject與AvatarController GameObject。

三個關卡

腳本使用

1.更動Avatar

public void ReplaceAvatar()
{
    // 取得使用者Avatar物件,更換為場景中的Seed-san GameObject
    CHTLandProxy.playerManager.GetLocalPlayer().GetAvatar().ReplaceAvatar("Seed-san", Gender.Male);
    // 完成關卡1
    levelManager.CompleteLevel1();
}

public void AddAttachment()
{
    // 將麥克風模型掛載於Avatar的左手骨頭,並設定Transform
    CHTLandProxy.playerManager.GetLocalPlayer().GetAvatar().AddAttachment("Microphone",
            HumanBodyBones.LeftHand,
            new Vector3(-0.178f, 0.11f, 0.076f),
            Quaternion.Euler(0f, -173.295f, 90f),
            new Vector3(1.6f, 1.6f, 1.6f)
            );
    // 完成關卡2
    levelManager.CompleteLevel2();
}


public void PlayCustomAnimation()
{
    // 播放預先準備好的Cheering自定義動畫,動畫檔必須在Config面板中設定關聯
    CHTLandProxy.playerManager.GetLocalPlayer().GetAvatar().PlayAnimationClip("Cheering", true);
    // 完成關卡3
    levelManager.CompleteLevel3();
}

2.回報任務事件完成

public void CompleteLevel1()
{
    // 回報場景樣板ID 202的事件45被完成了,場景ID和事件ID可由創作品網站取得
    CHTLandProxy.missionManager.SetMissionDone("202", "45");
    StartCoroutine(CompleteLevelWithDelay(level1, 2f));
}

public void CompleteLevel2()
{
    // 回報場景樣板ID 202的事件46被完成了,場景ID和事件ID可由創作品網站取得
    CHTLandProxy.missionManager.SetMissionDone("202", "46");
    StartCoroutine(CompleteLevelWithDelay(level2, 2f));
}

public void CompleteLevel3()
{
    // 回報場景樣板ID 202的事件47被完成了,場景ID和事件ID可由創作品網站取得
    CHTLandProxy.missionManager.SetMissionDone("202", "47");
    clearCanvas.SetActive(true);
}

更換Avatar 掛載麥克風 播放自定義動畫