diff --git a/Assets/PreviewTexture.renderTexture b/Assets/PreviewTexture.renderTexture new file mode 100644 index 0000000..029b08a --- /dev/null +++ b/Assets/PreviewTexture.renderTexture @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!84 &8400000 +RenderTexture: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PreviewTexture + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + m_IsAlphaChannelOptional: 0 + serializedVersion: 5 + m_Width: 1920 + m_Height: 1080 + m_AntiAliasing: 1 + m_MipCount: -1 + m_DepthStencilFormat: 94 + m_ColorFormat: 8 + m_MipMap: 0 + m_GenerateMips: 1 + m_SRGB: 0 + m_UseDynamicScale: 1 + m_BindMS: 0 + m_EnableCompatibleFormat: 1 + m_EnableRandomWrite: 0 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 0 + m_MipBias: 0 + m_WrapU: 1 + m_WrapV: 1 + m_WrapW: 1 + m_Dimension: 2 + m_VolumeDepth: 1 + m_ShadowSamplingMode: 2 diff --git a/Assets/PreviewTexture.renderTexture.meta b/Assets/PreviewTexture.renderTexture.meta new file mode 100644 index 0000000..556bb50 --- /dev/null +++ b/Assets/PreviewTexture.renderTexture.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5cf7293dda184f74e920fa26c0430ab1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 8400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Runtime/Prefabs/Plume-Player.prefab b/Assets/Runtime/Prefabs/Plume-Player.prefab index 4f87320..5d44015 100644 --- a/Assets/Runtime/Prefabs/Plume-Player.prefab +++ b/Assets/Runtime/Prefabs/Plume-Player.prefab @@ -270,7 +270,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!4 &3527861557537485353 Transform: m_ObjectHideFlags: 0 @@ -1065,6 +1065,7 @@ MonoBehaviour: m_EditorClassIdentifier: typeRegistryProvider: {fileID: 27516560266712775} loop: 0 + previewRenderTexture: {fileID: 8400000, guid: 5cf7293dda184f74e920fa26c0430ab1, type: 2} freeCamera: {fileID: 5243149662805609015} topViewCamera: {fileID: 5720294478372019317} mainCamera: {fileID: 4958596500381266705} diff --git a/Assets/Runtime/Scripts/RecordAssetBundle.cs b/Assets/Runtime/Scripts/RecordAssetBundle.cs index 96538ad..ff6451b 100644 --- a/Assets/Runtime/Scripts/RecordAssetBundle.cs +++ b/Assets/Runtime/Scripts/RecordAssetBundle.cs @@ -35,8 +35,6 @@ public T GetOrDefaultAssetByIdentifier(AssetIdentifier identifier) where T : var assetType = Type.GetType(assetTypeName) ?? typeof(Object); - Debug.Log($"'{assetType}' '{assetPath}' '{assetName}' '{assetSource}'"); - var asset = assetSource switch { "Custom" => LoadCustomAsset(assetType, assetPath, assetName), @@ -50,6 +48,11 @@ public T GetOrDefaultAssetByIdentifier(AssetIdentifier identifier) where T : private Object LoadCustomAsset(Type assetType, string assetPath, string assetName) { var assets = _assetBundle.LoadAssetWithSubAssets(assetPath, assetType); + if (assets == null || assets.Length == 0) + { + Debug.LogWarning($"Asset '{assetPath}' not found in asset bundle."); + return null; + } return assets.FirstOrDefault(asset => asset.name == assetName); } diff --git a/Assets/Runtime/Scripts/Viewer/MainWindowPresenter.cs b/Assets/Runtime/Scripts/Viewer/MainWindowPresenter.cs index 2cb12e9..8733563 100644 --- a/Assets/Runtime/Scripts/Viewer/MainWindowPresenter.cs +++ b/Assets/Runtime/Scripts/Viewer/MainWindowPresenter.cs @@ -45,7 +45,7 @@ private void Start() _mainWindowUI.PreviewRenderAspectRatio.RegisterCallback(OnPreviewRenderNavigationMove); _mainWindowUI.PreviewRenderAspectRatio.RegisterCallback(OnPreviewRenderKeyDown); _mainWindowUI.PreviewRender.style.backgroundImage = - Background.FromRenderTexture(player.PreviewRenderTexture); + Background.FromRenderTexture(player.previewRenderTexture); _mainWindowUI.Timeline.RegisterCallback(OnPlayPauseKeyDown); _mainWindowUI.PlayPauseButton.RegisterCallback(OnPlayPauseKeyDown); diff --git a/Assets/Runtime/Scripts/Viewer/Player/Player.cs b/Assets/Runtime/Scripts/Viewer/Player/Player.cs index 17450c2..ca7949c 100644 --- a/Assets/Runtime/Scripts/Viewer/Player/Player.cs +++ b/Assets/Runtime/Scripts/Viewer/Player/Player.cs @@ -42,7 +42,7 @@ public class Player : MonoBehaviour, IDisposable private bool _isPlaying; private ulong _currentTimeNanoseconds; - public RenderTexture PreviewRenderTexture { get; private set; } + public RenderTexture previewRenderTexture; public event Action OnFinishLoading = delegate { }; @@ -81,11 +81,10 @@ public static void OnInitialize() transform.parent = null; DontDestroyOnLoad(gameObject); } - - PreviewRenderTexture = RenderTexture.GetTemporary(1920, 1080); - freeCamera.PreviewRenderTexture = PreviewRenderTexture; - topViewCamera.PreviewRenderTexture = PreviewRenderTexture; - mainCamera.PreviewRenderTexture = PreviewRenderTexture; + + freeCamera.PreviewRenderTexture = previewRenderTexture; + topViewCamera.PreviewRenderTexture = previewRenderTexture; + mainCamera.PreviewRenderTexture = previewRenderTexture; freeCamera.transform.position = new Vector3(-2.24f, 1.84f, 0.58f); freeCamera.transform.rotation = Quaternion.Euler(25f, -140f, 0f); topViewCamera.transform.position = new Vector3(0, 3.25f, -4); @@ -242,7 +241,7 @@ private static async UniTask GetBundlePath(string recordFilePath = null) public void SetCurrentPreviewCamera(PreviewCamera camera) { var rt = RenderTexture.active; - RenderTexture.active = PreviewRenderTexture; + RenderTexture.active = previewRenderTexture; GL.Clear(true, true, Color.clear); RenderTexture.active = rt; @@ -273,7 +272,6 @@ private void FixedUpdate() public void OnDestroy() { - PreviewRenderTexture.Release(); _recordLoader.Dispose(); } @@ -362,7 +360,7 @@ public float GetRecordLoadingProgress() public float GetRecordAssetBundleLoadingProgress() { - return _bundleLoader.GetLoadingProgress(); + return _bundleLoader?.GetLoadingProgress() ?? 0; } public void SetPlaySpeed(float playSpeed) diff --git a/Assets/Scenes/PlayerScene.unity b/Assets/Scenes/PlayerScene.unity index 047cf89..08bc8d6 100644 --- a/Assets/Scenes/PlayerScene.unity +++ b/Assets/Scenes/PlayerScene.unity @@ -147,10 +147,18 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 1041767726375591474, guid: b4a12f1ba345b14438d4ad048811be15, type: 3} + propertyPath: PreviewRenderTexture + value: + objectReference: {fileID: 8400000, guid: 5cf7293dda184f74e920fa26c0430ab1, type: 2} - target: {fileID: 1622235944094969762, guid: b4a12f1ba345b14438d4ad048811be15, type: 3} propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 3688873362705555609, guid: b4a12f1ba345b14438d4ad048811be15, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 3853190476271717280, guid: b4a12f1ba345b14438d4ad048811be15, type: 3} propertyPath: m_LocalPosition.x value: 0 @@ -207,10 +215,6 @@ PrefabInstance: propertyPath: defaultInteractionType value: 1 objectReference: {fileID: 0} - - target: {fileID: 6271649878948817840, guid: b4a12f1ba345b14438d4ad048811be15, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - target: {fileID: 7333346258209044708, guid: b4a12f1ba345b14438d4ad048811be15, type: 3} propertyPath: m_RequiresDepthTextureOption value: 1 diff --git a/Assets/UniversalRenderPipelineGlobalSettings.asset b/Assets/UniversalRenderPipelineGlobalSettings.asset index 783520f..dc3e061 100644 --- a/Assets/UniversalRenderPipelineGlobalSettings.asset +++ b/Assets/UniversalRenderPipelineGlobalSettings.asset @@ -26,9 +26,9 @@ MonoBehaviour: lightLayerName7: m_StripDebugVariants: 1 m_StripUnusedPostProcessingVariants: 0 - m_StripUnusedVariants: 1 + m_StripUnusedVariants: 0 m_StripUnusedLODCrossFadeVariants: 1 - m_StripScreenCoordOverrideVariants: 1 + m_StripScreenCoordOverrideVariants: 0 supportRuntimeDebugDisplay: 0 m_ShaderVariantLogLevel: 0 m_ExportShaderVariants: 1 diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index c02cee8..922c5b9 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -176,7 +176,7 @@ PlayerSettings: AndroidTargetSdkVersion: 0 AndroidPreferredInstallLocation: 1 aotOptions: - stripEngineCode: 1 + stripEngineCode: 0 iPhoneStrippingLevel: 0 iPhoneScriptCallOptimization: 0 ForceInternetPermission: 0