Land Explorer in HomeCamp with boot loading, journal UI, and CDN publish tooling.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
#if UNITY_EDITOR
|
||||
using System.IO;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
|
||||
public static class TestRealtimeShadowCapture
|
||||
{
|
||||
const string ScenePath = "Assets/Bundles/Scenes/Town/HomeCamp/HomeCamp.unity";
|
||||
|
||||
public static string Run()
|
||||
{
|
||||
var scene = EditorSceneManager.OpenScene(ScenePath, OpenSceneMode.Additive);
|
||||
try
|
||||
{
|
||||
var root = scene.GetRootGameObjects()[0];
|
||||
var sun = root.transform.Find("HomeCampSun")?.GetComponent<Light>();
|
||||
if (sun != null)
|
||||
{
|
||||
sun.lightmapBakeType = LightmapBakeType.Realtime;
|
||||
sun.shadows = LightShadows.Soft;
|
||||
sun.shadowStrength = 0.85f;
|
||||
sun.shadowBias = 0.05f;
|
||||
sun.shadowNormalBias = 0.3f;
|
||||
sun.intensity = 1.8f;
|
||||
}
|
||||
|
||||
var cam = root.transform.Find("HomeCampCamera")?.GetComponent<Camera>();
|
||||
if (cam == null) return "Camera missing";
|
||||
|
||||
var uacd = cam.GetComponent<UniversalAdditionalCameraData>();
|
||||
if (uacd == null) uacd = cam.gameObject.AddComponent<UniversalAdditionalCameraData>();
|
||||
uacd.renderShadows = true;
|
||||
|
||||
int w = 720, h = 1280;
|
||||
var rt = new RenderTexture(w, h, 24, RenderTextureFormat.ARGB32) { name = "ShadowTestRT" };
|
||||
rt.Create();
|
||||
cam.targetTexture = rt;
|
||||
cam.Render();
|
||||
|
||||
var old = RenderTexture.active;
|
||||
RenderTexture.active = rt;
|
||||
var tex = new Texture2D(w, h, TextureFormat.RGB24, false);
|
||||
tex.ReadPixels(new Rect(0, 0, w, h), 0, 0);
|
||||
tex.Apply();
|
||||
RenderTexture.active = old;
|
||||
|
||||
cam.targetTexture = null;
|
||||
rt.Release();
|
||||
Object.DestroyImmediate(rt);
|
||||
|
||||
string outPath = Path.Combine(Application.dataPath, "../../Tools/output/shadow_test.png");
|
||||
File.WriteAllBytes(outPath, tex.EncodeToPNG());
|
||||
Object.DestroyImmediate(tex);
|
||||
|
||||
return "Rendered to " + outPath;
|
||||
}
|
||||
finally
|
||||
{
|
||||
EditorSceneManager.CloseScene(scene, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user