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按鈕。
![]()
場景配置
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);
}
![]()