多場景混合渲染開發指南
多場景混合渲染指同時創建多個 LCC 場景,並實時混合渲染這些場景,實現正確的遮擋和混合。為獨立控制每一個參與渲染的LCC場景,需要創建多個 Renderer,並讓每個 Renderer 附屬到一個獨立的 GameObject 上,這樣可以獨立控制每個 LCC 場景的 Transform。
步驟 1:創建場景與遊戲對象
在 Unity 中創建一個全新的場景,Unity 默認會創建 Main Camera 和 Directional Light。
創建 LCCManager
在 Hierarchy 窗口空白處單擊鼠標右鍵,在彈出的菜單中選擇 Create Empty,創建一個空遊戲對象,命名為 LCCManager,將其 Transform 歸一,並通過 Add Component 為其添加 LCCManager 腳本。

創建 LCCManager 遊戲對象並添加 LCCManager 腳本
創建 LCCRenderer01
在 Hierarchy 窗口空白處單擊鼠標右鍵,選擇 Create Empty,創建一個空遊戲對象,命名為 LCCRenderer01,將其 Transform 設置為 Rotation.x = -90、Scale.x = -1。

創建 LCCRenderer01 並設置 Transform(Rotation.x = -90、Scale.x = -1)
創建 LCCRenderer02
以同樣的方式再創建一個空遊戲對象,命名為 LCCRenderer02,同樣將其 Transform 設置為 Rotation.x = -90、Scale.x = -1。

創建 LCCRenderer02 並設置 Transform(Rotation.x = -90、Scale.x = -1)
注意:
LCCRenderer 遊戲對象的 Transform 設置(Rotation.x = -90、Scale.x = -1)是與 LCC 數據座標系的對齊。關於座標系對齊的詳細說明,參見 Unity SDK 簡介 中的「LCC 數據座標系」。
步驟 2:編寫多場景渲染腳本
新建一個 C# 腳本,命名為 MultiRenderer.cs,代碼如下:
using LCCCore;
using UnityEngine;
public class MultiRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath01;
public Transform m_transform01;
public string m_FilePath02;
public Transform m_transform02;
private LCCCore.Renderer m_renderer01;
private LCCCore.Renderer m_renderer02;
private int m_currentFileIndex = 0;
void Start()
{
m_manager.SetPlatformType(PlatformType.PC);
// 設置為 MultiRender 模式,允許多個 Renderer 同時激活並混合渲染
m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);
Debug.Log("Started ");
m_renderer01 = m_manager.GetRender(m_transform01);
m_renderer02 = m_manager.GetRender(m_transform02);
m_currentFileIndex = 0;
m_renderer01.Load(m_FilePath01, onProgress, onComplete);
m_currentFileIndex = 1;
m_renderer02.Load(m_FilePath02, onProgress, onComplete);
}
private void onProgress(float _progress)
{
Debug.Log($"[LCCRenderer] file {m_currentFileIndex} load progress: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[LCCRenderer] file {m_currentFileIndex} loaded");
}
}
步驟 3:掛載腳本並配置屬性
- 將
MultiRenderer.cs腳本掛載到 Hierarchy 窗口中的 LCCManager 遊戲對象上。 - 在 Inspector 窗口中,按下表完成引用與路徑的賦值:
| 腳本屬性 | 賦值 |
|---|---|
| Manager | 將 LCCManager 遊戲對象拖動到該屬性上 |
| Transform01 | 將 LCCRenderer01 遊戲對象拖動到該屬性上 |
| Transform02 | 將 LCCRenderer02 遊戲對象拖動到該屬性上 |
| File Path01 | 第一個 LCC 數據源的路徑 |
| File Path02 | 第二個 LCC 數據源的路徑 |

在 Inspector 中配置 MultiRenderer 腳本的引用與數據路徑
步驟 4:運行
點擊 Game 窗口中的 Play 按鈕,即可看到兩個 LCC 場景同時混合渲染。改變 LCCRenderer01 或 LCCRenderer02 遊戲對象的 Transform 值,每個渲染中的場景會實時產生變化。

運行後兩個 LCC 場景同時混合渲染
關鍵點
開發多 LCC 場景混合渲染有兩個關鍵點:
- 切換到 MultiRender 模式:通過
m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);允許多個 LCC 場景混合渲染。默認為SingleRender模式,不允許多個 LCC 場景混合渲染。 - 每個 Renderer 附屬到獨立的 GameObject:通過
GetRender(Transform)讓每個 Renderer 綁定到一個獨立的遊戲對象上,從而可以獨立控制每個 LCC 場景的 Transform。