This commit is contained in:
Savya Bikram Shah
2026-06-01 12:22:47 +05:45
parent 5c7a9f38a9
commit 384176fdcc
7 changed files with 4022 additions and 1796 deletions

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 684ad60441f714a338ca786efcac33b6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -26,9 +26,6 @@ namespace Darkmatter.Services.Capture
int sw = Screen.width; int sw = Screen.width;
int sh = Screen.height; int sh = Screen.height;
var disabledCanvases = DisableOtherRootCanvases(paperCanvas);
var disabledGraphics = HideNonPaperGraphics(paperRT);
Rect crop = ComputeCropRect(captureObject, sw, sh); Rect crop = ComputeCropRect(captureObject, sw, sh);
int cropW = Mathf.Max(1, (int)crop.width); int cropW = Mathf.Max(1, (int)crop.width);
int cropH = Mathf.Max(1, (int)crop.height); int cropH = Mathf.Max(1, (int)crop.height);
@@ -36,22 +33,30 @@ namespace Darkmatter.Services.Capture
var prevFlags = cam.clearFlags; var prevFlags = cam.clearFlags;
var prevBg = cam.backgroundColor; var prevBg = cam.backgroundColor;
var prevTarget = cam.targetTexture; var prevTarget = cam.targetTexture;
cam.clearFlags = CameraClearFlags.SolidColor;
cam.backgroundColor = new Color(0f, 0f, 0f, 0f);
var rt = RenderTexture.GetTemporary(sw, sh, 24, RenderTextureFormat.ARGB32); var rt = RenderTexture.GetTemporary(sw, sh, 24, RenderTextureFormat.ARGB32);
cam.targetTexture = rt;
var prevMode = paperCanvas.renderMode; var prevMode = paperCanvas.renderMode;
var prevWorldCam = paperCanvas.worldCamera; var prevWorldCam = paperCanvas.worldCamera;
var prevPlaneDist = paperCanvas.planeDistance; var prevPlaneDist = paperCanvas.planeDistance;
paperCanvas.renderMode = RenderMode.ScreenSpaceCamera;
paperCanvas.worldCamera = cam; List<Canvas> disabledCanvases = null;
paperCanvas.planeDistance = Mathf.Max(0.5f, (cam.nearClipPlane + cam.farClipPlane) * 0.5f); List<UnityEngine.UI.Graphic> disabledGraphics = null;
try try
{ {
await UniTask.WaitForEndOfFrame(cancellationToken); await UniTask.WaitForEndOfFrame(cancellationToken);
disabledCanvases = DisableOtherRootCanvases(paperCanvas);
disabledGraphics = HideNonPaperGraphics(paperRT);
cam.clearFlags = CameraClearFlags.SolidColor;
cam.backgroundColor = new Color(0f, 0f, 0f, 0f);
cam.targetTexture = rt;
paperCanvas.renderMode = RenderMode.ScreenSpaceCamera;
paperCanvas.worldCamera = cam;
paperCanvas.planeDistance = Mathf.Max(0.5f, (cam.nearClipPlane + cam.farClipPlane) * 0.5f);
Canvas.ForceUpdateCanvases(); Canvas.ForceUpdateCanvases();
cam.Render(); cam.Render();
@@ -104,9 +109,11 @@ namespace Darkmatter.Services.Capture
cam.clearFlags = prevFlags; cam.clearFlags = prevFlags;
cam.backgroundColor = prevBg; cam.backgroundColor = prevBg;
RenderTexture.ReleaseTemporary(rt); RenderTexture.ReleaseTemporary(rt);
if (disabledGraphics != null)
foreach (var g in disabledGraphics) foreach (var g in disabledGraphics)
if (g != null) if (g != null)
g.enabled = true; g.enabled = true;
if (disabledCanvases != null)
foreach (var c in disabledCanvases) foreach (var c in disabledCanvases)
if (c != null) if (c != null)
c.enabled = true; c.enabled = true;
@@ -166,10 +173,12 @@ namespace Darkmatter.Services.Capture
private static Texture2D Resize(Texture2D src, int width, int height) private static Texture2D Resize(Texture2D src, int width, int height)
{ {
var rt = RenderTexture.GetTemporary(width, height); var rt = RenderTexture.GetTemporary(width, height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);
var prev = RenderTexture.active; var prev = RenderTexture.active;
try try
{ {
RenderTexture.active = rt;
GL.Clear(false, true, new Color(0f, 0f, 0f, 0f));
Graphics.Blit(src, rt); Graphics.Blit(src, rt);
RenderTexture.active = rt; RenderTexture.active = rt;
var dst = new Texture2D(width, height, TextureFormat.RGBA32, mipChain: false); var dst = new Texture2D(width, height, TextureFormat.RGBA32, mipChain: false);

View File

@@ -357,18 +357,18 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1188101388448078972} m_GameObject: {fileID: 1188101388448078972}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 3594603427028553980} - {fileID: 3594603427028553980}
- {fileID: 441124950780501771} - {fileID: 441124950780501771}
m_Father: {fileID: 5547118069008423765} m_Father: {fileID: 6690079309091672109}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5} m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 586.9144, y: -19.91121} m_AnchoredPosition: {x: 326.27158, y: -98.71441}
m_SizeDelta: {x: 484.27228, y: 727.8224} m_SizeDelta: {x: 484.27228, y: 727.8224}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1291032226892030435 --- !u!1 &1291032226892030435
@@ -977,6 +977,96 @@ MonoBehaviour:
rightEditBtn: {fileID: 3592641742104231533} rightEditBtn: {fileID: 3592641742104231533}
leftArrowBtn: {fileID: 1926483816928593170} leftArrowBtn: {fileID: 1926483816928593170}
rightArrowBtn: {fileID: 5102858265158070802} rightArrowBtn: {fileID: 5102858265158070802}
--- !u!1 &3968165114877126688
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5866376038047348955}
- component: {fileID: 7173409860318281275}
- component: {fileID: 7283950262010678386}
- component: {fileID: 6005139069806320029}
m_Layer: 5
m_Name: RIghtMask
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5866376038047348955
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3968165114877126688}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7587323423160720656}
m_Father: {fileID: 5547118069008423765}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 448, y: 78.80319}
m_SizeDelta: {x: 568.41, y: 644.3936}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7173409860318281275
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3968165114877126688}
m_CullTransparentMesh: 1
--- !u!114 &7283950262010678386
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3968165114877126688}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &6005139069806320029
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3968165114877126688}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Mask
m_ShowMaskGraphic: 0
--- !u!1 &4322975953909672353 --- !u!1 &4322975953909672353
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1577,8 +1667,8 @@ RectTransform:
m_Children: m_Children:
- {fileID: 2131845220052401008} - {fileID: 2131845220052401008}
- {fileID: 7493892606189488038} - {fileID: 7493892606189488038}
- {fileID: 4538829696477980000} - {fileID: 6690079309091672109}
- {fileID: 7587323423160720656} - {fileID: 5866376038047348955}
m_Father: {fileID: 3765577967584406493} m_Father: {fileID: 3765577967584406493}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
@@ -2502,18 +2592,18 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7994049389914864845} m_GameObject: {fileID: 7994049389914864845}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 5888896414592815468} - {fileID: 5888896414592815468}
- {fileID: 1919538821576412555} - {fileID: 1919538821576412555}
m_Father: {fileID: 5547118069008423765} m_Father: {fileID: 5866376038047348955}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 418.505, y: -19.91121} m_AnchoredPosition: {x: -29.494995, y: -98.71441}
m_SizeDelta: {x: 484.2721, y: 727.8224} m_SizeDelta: {x: 484.2721, y: 727.8224}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &8052453301727865824 --- !u!1 &8052453301727865824
@@ -2653,6 +2743,96 @@ MonoBehaviour:
m_hasFontAssetChanged: 0 m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0} m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &8308214188962004307
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6690079309091672109}
- component: {fileID: 4027786157419965345}
- component: {fileID: 7748873692972350005}
- component: {fileID: 2131280192654768571}
m_Layer: 5
m_Name: LeftMask
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6690079309091672109
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8308214188962004307}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4538829696477980000}
m_Father: {fileID: 5547118069008423765}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -452.79, y: 78.80319}
m_SizeDelta: {x: 568.41, y: 644.3936}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4027786157419965345
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8308214188962004307}
m_CullTransparentMesh: 1
--- !u!114 &7748873692972350005
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8308214188962004307}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &2131280192654768571
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8308214188962004307}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Mask
m_ShowMaskGraphic: 0
--- !u!1 &8568633259698255501 --- !u!1 &8568633259698255501
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -146,6 +146,7 @@ PlayerSettings:
bundleVersion: 1.0 bundleVersion: 1.0
preloadedAssets: preloadedAssets:
- {fileID: 11400000, guid: cc969dbecb228fa49b16da9273753a8f, type: 2} - {fileID: 11400000, guid: cc969dbecb228fa49b16da9273753a8f, type: 2}
- {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
metroInputSource: 0 metroInputSource: 0
wsaTransparentSwapchain: 0 wsaTransparentSwapchain: 0
xboxOneDisableKinectGpuReservation: 1 xboxOneDisableKinectGpuReservation: 1
@@ -167,6 +168,7 @@ PlayerSettings:
applicationIdentifier: applicationIdentifier:
Android: com.Darkmatter.Colorbook Android: com.Darkmatter.Colorbook
Standalone: com.DefaultCompany.2D-URP Standalone: com.DefaultCompany.2D-URP
iPhone: com.Darkmatter.Colorbook
buildNumber: buildNumber:
Standalone: 0 Standalone: 0
VisionOS: 0 VisionOS: 0
@@ -496,6 +498,9 @@ PlayerSettings:
- m_BuildTarget: Android - m_BuildTarget: Android
m_StaticBatching: 1 m_StaticBatching: 1
m_DynamicBatching: 0 m_DynamicBatching: 0
- m_BuildTarget: iPhone
m_StaticBatching: 1
m_DynamicBatching: 0
m_BuildTargetShaderSettings: [] m_BuildTargetShaderSettings: []
m_BuildTargetGraphicsJobs: [] m_BuildTargetGraphicsJobs: []
m_BuildTargetGraphicsJobMode: [] m_BuildTargetGraphicsJobMode: []
@@ -520,6 +525,9 @@ PlayerSettings:
- serializedVersion: 3 - serializedVersion: 3
m_BuildTarget: Android m_BuildTarget: Android
m_Formats: 01000000 m_Formats: 01000000
- serializedVersion: 3
m_BuildTarget: iOS
m_Formats: 03000000
playModeTestRunnerEnabled: 0 playModeTestRunnerEnabled: 0
runPlayModeTestAsEditModeTest: 0 runPlayModeTestAsEditModeTest: 0
actionOnDotNetUnhandledException: 1 actionOnDotNetUnhandledException: 1