Merge branch 'main' of http://212.24.110.183:3000/IPSEITY/Unheimlich_POC
This commit is contained in:
@@ -10,25 +10,52 @@ using UnityEngine;
|
||||
[InitializeOnLoad]
|
||||
public static class SceneNotifier
|
||||
{
|
||||
// Replace with your Discord webhook URL
|
||||
private static readonly string WebhookUrl = "https://discord.com/api/webhooks/1486718530765328424/42mP_zYNTEwwBbc_lcuasPbpZppXoC4U14-Pde1YatdxatT5s9vml8lgQXTwAmm0PNe5";
|
||||
|
||||
private static readonly string UserName = Environment.UserName;
|
||||
private static readonly string MachineName = Environment.MachineName;
|
||||
private static readonly HttpClient Http = new HttpClient();
|
||||
|
||||
// Key = full scene path, Value = opened timestamp
|
||||
private static readonly Dictionary<string, DateTime> OpenScenes = new Dictionary<string, DateTime>();
|
||||
|
||||
// Suppresses fake open/close events caused by Play Mode transitions
|
||||
private static bool SuppressSceneEvents = false;
|
||||
|
||||
static SceneNotifier()
|
||||
{
|
||||
EditorSceneManager.sceneOpened += OnSceneOpened;
|
||||
EditorSceneManager.sceneClosed += OnSceneClosed;
|
||||
EditorApplication.quitting += OnEditorQuitting;
|
||||
EditorApplication.playModeStateChanged += OnPlayModeStateChanged;
|
||||
}
|
||||
|
||||
private static void OnPlayModeStateChanged(PlayModeStateChange state)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case PlayModeStateChange.ExitingEditMode:
|
||||
case PlayModeStateChange.EnteredPlayMode:
|
||||
case PlayModeStateChange.ExitingPlayMode:
|
||||
case PlayModeStateChange.EnteredEditMode:
|
||||
SuppressSceneEvents = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// Re-enable notifications shortly after returning to edit mode
|
||||
if (state == PlayModeStateChange.EnteredEditMode)
|
||||
{
|
||||
EditorApplication.delayCall += () =>
|
||||
{
|
||||
SuppressSceneEvents = false;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private static void OnSceneOpened(UnityEngine.SceneManagement.Scene scene, OpenSceneMode mode)
|
||||
{
|
||||
if (SuppressSceneEvents || EditorApplication.isPlayingOrWillChangePlaymode)
|
||||
return;
|
||||
|
||||
if (!IsTrackableScene(scene))
|
||||
return;
|
||||
|
||||
@@ -38,6 +65,7 @@ public static class SceneNotifier
|
||||
OpenScenes[scenePath] = openedAt;
|
||||
|
||||
string message =
|
||||
$"---------------------\n"+
|
||||
$"🚧 **Scene Locked**\n" +
|
||||
$"👤 **{UserName}**\n" +
|
||||
$"💻 **{MachineName}**\n" +
|
||||
@@ -49,6 +77,9 @@ public static class SceneNotifier
|
||||
|
||||
private static void OnSceneClosed(UnityEngine.SceneManagement.Scene scene)
|
||||
{
|
||||
if (SuppressSceneEvents || EditorApplication.isPlayingOrWillChangePlaymode)
|
||||
return;
|
||||
|
||||
if (!IsTrackableScene(scene))
|
||||
return;
|
||||
|
||||
@@ -60,6 +91,7 @@ public static class SceneNotifier
|
||||
TimeSpan duration = closedAt - openedAt;
|
||||
|
||||
string message =
|
||||
$"---------------------\n" +
|
||||
$"🔓 **Scene Released**\n" +
|
||||
$"👤 **{UserName}**\n" +
|
||||
$"💻 **{MachineName}**\n" +
|
||||
@@ -71,19 +103,6 @@ public static class SceneNotifier
|
||||
OpenScenes.Remove(scenePath);
|
||||
_ = SendDiscordMessage(message);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Safety fallback in case Unity reports a close for a scene we did not track
|
||||
string message =
|
||||
$"🔓 **Scene Released**\n" +
|
||||
$"👤 **{UserName}**\n" +
|
||||
$"💻 **{MachineName}**\n" +
|
||||
$"📁 `{FormatPath(scenePath)}`\n" +
|
||||
$"🕒 Closed: **{FormatDateTime(closedAt)}**\n" +
|
||||
$"⏱ Stayed on scene: **unknown**";
|
||||
|
||||
_ = SendDiscordMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
private static void OnEditorQuitting()
|
||||
@@ -91,19 +110,8 @@ public static class SceneNotifier
|
||||
DateTime quitAt = DateTime.Now;
|
||||
|
||||
if (OpenScenes.Count == 0)
|
||||
{
|
||||
string message =
|
||||
$"❌ **Unity Closed**\n" +
|
||||
$"👤 **{UserName}**\n" +
|
||||
$"💻 **{MachineName}**\n" +
|
||||
$"🕒 Closed Unity: **{FormatDateTime(quitAt)}**\n" +
|
||||
$"📂 No tracked open scenes";
|
||||
|
||||
_ = SendDiscordMessage(message);
|
||||
return;
|
||||
}
|
||||
|
||||
// Copy first so we can safely clear afterward
|
||||
var scenesToRelease = new List<KeyValuePair<string, DateTime>>(OpenScenes);
|
||||
|
||||
foreach (var kvp in scenesToRelease)
|
||||
@@ -113,6 +121,7 @@ public static class SceneNotifier
|
||||
TimeSpan duration = quitAt - openedAt;
|
||||
|
||||
string message =
|
||||
$"---------------------\n" +
|
||||
$"❌ **Unity Closed — Scene Auto-Released**\n" +
|
||||
$"👤 **{UserName}**\n" +
|
||||
$"💻 **{MachineName}**\n" +
|
||||
@@ -129,7 +138,6 @@ public static class SceneNotifier
|
||||
|
||||
private static bool IsTrackableScene(UnityEngine.SceneManagement.Scene scene)
|
||||
{
|
||||
// Prevent false notifications on startup / editor internals / untitled scenes
|
||||
if (string.IsNullOrWhiteSpace(scene.path))
|
||||
return false;
|
||||
|
||||
@@ -170,11 +178,7 @@ public static class SceneNotifier
|
||||
using var httpContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||
using var response = await Http.PostAsync(WebhookUrl, httpContent);
|
||||
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
Debug.Log($"[SceneNotifier] Sent to Discord:\n{content}");
|
||||
}
|
||||
else
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
string responseBody = await response.Content.ReadAsStringAsync();
|
||||
Debug.LogWarning(
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 58a9d39fccd0ba9429443d35e5338bab
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a744160092a08524089afb0b05ffc74a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5472c088018f942a0bb10be496c60b6f188b71b758e3effd20867bb7f1992b78
|
||||
size 1755
|
||||
@@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 75cf65f7e4ca5ad42b0bf27a1ed2ed8d
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:16d31448c0b65d887bcec91c90ebd332cb8cd2448c1feafc081940626e3aadc0
|
||||
size 1757
|
||||
@@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 36d4fa173fa60f1448b11c9003f4153e
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 0
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a591c3d61f037ff438c9f7b3f0d99db4845093deec9e7fc50a6f9f052855759e
|
||||
size 2330
|
||||
@@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1939718855fae9446bb86bc7b3420e24
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 0
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 8
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8989a2c6cd3cf83708e060de9457f0b61483a367a5570e8effa4add18b21e22f
|
||||
size 1754
|
||||
@@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 32d70050c3410ed49bfeec24790e163d
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 0
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0786eea16a39aad45a66d878d9427145
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,642 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
[InitializeOnLoad]
|
||||
public static class SceneEditPresenceTool
|
||||
{
|
||||
private const string ServerUrl = "http://unityapi.coiriergraphics.fr/scene_presence/";
|
||||
private const double HeartbeatInterval = 180;
|
||||
|
||||
private static string _userId;
|
||||
private static string _projectName;
|
||||
private static string _scenePath;
|
||||
private static double _nextHeartbeat;
|
||||
private static bool _offline;
|
||||
private static string _currentEditor = "none";
|
||||
private static bool _requestInFlight;
|
||||
|
||||
private const float OverlayHeight = 30f;
|
||||
private const float OverlayMarginTop = 3f;
|
||||
private const float OverlayOffsetX = 48f;
|
||||
private const float OverlayBaseWidth = 420f;
|
||||
private const float OverlayWidthScale = .70f;
|
||||
private const float ButtonWidth = 78f;
|
||||
|
||||
private static string ConfigPath =>
|
||||
Path.Combine(
|
||||
Directory.GetParent(Application.dataPath).FullName,
|
||||
"UserSettings",
|
||||
"ScenePresenceUser.json"
|
||||
);
|
||||
|
||||
static SceneEditPresenceTool()
|
||||
{
|
||||
_projectName = Directory.GetParent(Application.dataPath).Name;
|
||||
_userId = LoadOrAskUserId();
|
||||
|
||||
EditorApplication.delayCall += OnStartup;
|
||||
EditorApplication.update += OnUpdate;
|
||||
EditorSceneManager.activeSceneChangedInEditMode += OnSceneChanged;
|
||||
SceneView.duringSceneGui += OnSceneGui;
|
||||
}
|
||||
|
||||
private static async void OnStartup()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(_userId))
|
||||
return;
|
||||
|
||||
var scene = SceneManager.GetActiveScene();
|
||||
if (!string.IsNullOrEmpty(scene.path))
|
||||
{
|
||||
_scenePath = scene.path;
|
||||
await OpenScene();
|
||||
}
|
||||
}
|
||||
|
||||
private static async void OnSceneChanged(Scene oldScene, Scene newScene)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(_userId))
|
||||
return;
|
||||
|
||||
if (!string.IsNullOrEmpty(newScene.path))
|
||||
{
|
||||
_scenePath = newScene.path;
|
||||
await OpenScene();
|
||||
}
|
||||
}
|
||||
|
||||
private static async void OnUpdate()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(_userId))
|
||||
return;
|
||||
|
||||
if (string.IsNullOrEmpty(_scenePath))
|
||||
return;
|
||||
|
||||
if (_requestInFlight)
|
||||
return;
|
||||
|
||||
if (EditorApplication.timeSinceStartup < _nextHeartbeat)
|
||||
return;
|
||||
|
||||
_nextHeartbeat = EditorApplication.timeSinceStartup + HeartbeatInterval;
|
||||
await Heartbeat();
|
||||
RepaintSceneView();
|
||||
}
|
||||
|
||||
private static void OnSceneGui(SceneView sceneView)
|
||||
{
|
||||
Handles.BeginGUI();
|
||||
|
||||
float width = Mathf.Min(sceneView.position.width - (OverlayOffsetX + 16f), OverlayBaseWidth) * OverlayWidthScale;
|
||||
|
||||
Rect rect = new Rect(
|
||||
OverlayOffsetX,
|
||||
OverlayMarginTop,
|
||||
width,
|
||||
OverlayHeight
|
||||
);
|
||||
|
||||
DrawTopBar(rect);
|
||||
|
||||
Handles.EndGUI();
|
||||
}
|
||||
|
||||
private static void DrawTopBar(Rect rect)
|
||||
{
|
||||
UiState state = GetUiState();
|
||||
string buttonLabel = state == UiState.OwnedByMe ? "Release" : "Edit";
|
||||
bool buttonEnabled = state != UiState.Offline && !_requestInFlight;
|
||||
|
||||
Rect buttonRect = new Rect(
|
||||
rect.xMax - ButtonWidth - 6f,
|
||||
rect.y + 4f,
|
||||
ButtonWidth,
|
||||
rect.height - 8f
|
||||
);
|
||||
|
||||
Rect textRect = new Rect(
|
||||
rect.x + 10f,
|
||||
rect.y,
|
||||
rect.width - ButtonWidth - 22f,
|
||||
rect.height
|
||||
);
|
||||
|
||||
EditorGUI.DrawRect(rect, GetBackgroundColor(state));
|
||||
|
||||
GUIStyle textStyle = new GUIStyle(EditorStyles.label)
|
||||
{
|
||||
alignment = TextAnchor.MiddleLeft,
|
||||
fontStyle = FontStyle.Bold,
|
||||
fontSize = 11,
|
||||
normal = { textColor = Color.white },
|
||||
clipping = TextClipping.Clip
|
||||
};
|
||||
|
||||
GUI.Label(textRect, GetMessage(state), textStyle);
|
||||
|
||||
Color oldColor = GUI.backgroundColor;
|
||||
GUI.backgroundColor = GetButtonColor(state);
|
||||
|
||||
EditorGUI.BeginDisabledGroup(!buttonEnabled);
|
||||
if (GUI.Button(buttonRect, buttonLabel))
|
||||
{
|
||||
if (state == UiState.MissingUserId)
|
||||
{
|
||||
AskUserIdWindow.ShowWindow(SaveUserIdAndRefresh);
|
||||
}
|
||||
else if (state == UiState.OwnedByMe)
|
||||
{
|
||||
ReleaseEditMode();
|
||||
}
|
||||
else
|
||||
{
|
||||
TakeEditMode();
|
||||
}
|
||||
}
|
||||
EditorGUI.EndDisabledGroup();
|
||||
|
||||
GUI.backgroundColor = oldColor;
|
||||
}
|
||||
|
||||
private static UiState GetUiState()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(_userId))
|
||||
return UiState.MissingUserId;
|
||||
|
||||
if (_offline)
|
||||
return UiState.Offline;
|
||||
|
||||
if (_currentEditor == _userId)
|
||||
return UiState.OwnedByMe;
|
||||
|
||||
if (!string.IsNullOrEmpty(_currentEditor) && _currentEditor != "none")
|
||||
return UiState.OwnedByOther;
|
||||
|
||||
return UiState.Free;
|
||||
}
|
||||
|
||||
private static string GetMessage(UiState state)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case UiState.MissingUserId:
|
||||
return "User ID required";
|
||||
case UiState.OwnedByMe:
|
||||
return "You are editing this scene";
|
||||
case UiState.OwnedByOther:
|
||||
return $"{_currentEditor} is editing this scene";
|
||||
case UiState.Offline:
|
||||
return "Offline";
|
||||
default:
|
||||
return "Scene available";
|
||||
}
|
||||
}
|
||||
|
||||
private static Color GetBackgroundColor(UiState state)
|
||||
{
|
||||
const float alpha = 0.70f;
|
||||
|
||||
switch (state)
|
||||
{
|
||||
case UiState.MissingUserId:
|
||||
case UiState.Offline:
|
||||
return new Color(1.00f, 0.10f, 0.10f, alpha);
|
||||
|
||||
case UiState.OwnedByMe:
|
||||
return new Color(0.22f, 0.55f, 0.28f, alpha);
|
||||
|
||||
case UiState.OwnedByOther:
|
||||
return new Color(0.82f, 0.48f, 0.10f, alpha);
|
||||
|
||||
default:
|
||||
return new Color(0.18f, 0.18f, 0.18f, alpha);
|
||||
}
|
||||
}
|
||||
|
||||
private static Color GetButtonColor(UiState state)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case UiState.Free:
|
||||
return new Color(0.38f, 0.66f, 1.00f, 1f);
|
||||
|
||||
case UiState.MissingUserId:
|
||||
case UiState.OwnedByOther:
|
||||
case UiState.OwnedByMe:
|
||||
case UiState.Offline:
|
||||
default:
|
||||
return new Color(0.22f, 0.22f, 0.22f, 1f);
|
||||
}
|
||||
}
|
||||
|
||||
private static async void TakeEditMode()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(_userId))
|
||||
{
|
||||
AskUserIdWindow.ShowWindow(SaveUserIdAndRefresh);
|
||||
return;
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(_scenePath))
|
||||
return;
|
||||
|
||||
EditModeRequest payload = new EditModeRequest
|
||||
{
|
||||
projectName = _projectName,
|
||||
scenePath = _scenePath,
|
||||
userId = _userId,
|
||||
dateTime = DateTime.UtcNow.ToString("o"),
|
||||
force = false
|
||||
};
|
||||
|
||||
SetEditModeResponse result = await Request<SetEditModeResponse>("set_edit_mode.php", payload);
|
||||
if (result == null)
|
||||
{
|
||||
SetOffline();
|
||||
return;
|
||||
}
|
||||
|
||||
_offline = false;
|
||||
|
||||
if (!result.success)
|
||||
{
|
||||
Debug.LogError("[ScenePresence] set_edit_mode failed.");
|
||||
RepaintSceneView();
|
||||
return;
|
||||
}
|
||||
|
||||
if (result.granted)
|
||||
{
|
||||
_currentEditor = _userId;
|
||||
RepaintSceneView();
|
||||
return;
|
||||
}
|
||||
|
||||
string ownerName = !string.IsNullOrWhiteSpace(result.occupiedBy)
|
||||
? result.occupiedBy
|
||||
: (!string.IsNullOrWhiteSpace(_currentEditor) && _currentEditor != "none" ? _currentEditor : "another user");
|
||||
|
||||
bool forceTake = EditorUtility.DisplayDialog(
|
||||
"Scene Already In Edit Mode",
|
||||
$"This scene is already locked by {ownerName}.\nDo you want to take control anyway?",
|
||||
"Take Control",
|
||||
"Cancel"
|
||||
);
|
||||
|
||||
if (!forceTake)
|
||||
return;
|
||||
|
||||
payload.force = true;
|
||||
|
||||
SetEditModeResponse forced = await Request<SetEditModeResponse>("set_edit_mode.php", payload);
|
||||
if (forced == null)
|
||||
{
|
||||
SetOffline();
|
||||
return;
|
||||
}
|
||||
|
||||
_offline = false;
|
||||
|
||||
if (forced.success && forced.granted)
|
||||
{
|
||||
_currentEditor = _userId;
|
||||
RepaintSceneView();
|
||||
}
|
||||
}
|
||||
|
||||
private static async void ReleaseEditMode()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(_userId))
|
||||
return;
|
||||
|
||||
if (string.IsNullOrEmpty(_scenePath))
|
||||
return;
|
||||
|
||||
ReleaseResponse result = await Request<ReleaseResponse>("release_edit_mode.php", new BaseRequest
|
||||
{
|
||||
projectName = _projectName,
|
||||
scenePath = _scenePath,
|
||||
userId = _userId,
|
||||
dateTime = DateTime.UtcNow.ToString("o")
|
||||
});
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
SetOffline();
|
||||
return;
|
||||
}
|
||||
|
||||
_offline = false;
|
||||
_currentEditor = "none";
|
||||
RepaintSceneView();
|
||||
await OpenScene();
|
||||
}
|
||||
|
||||
private static async Task OpenScene()
|
||||
{
|
||||
OpenSceneResponse result = await Request<OpenSceneResponse>("open_scene.php", new BaseRequest
|
||||
{
|
||||
projectName = _projectName,
|
||||
scenePath = _scenePath,
|
||||
userId = _userId,
|
||||
dateTime = DateTime.UtcNow.ToString("o")
|
||||
});
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
SetOffline();
|
||||
return;
|
||||
}
|
||||
|
||||
_offline = false;
|
||||
|
||||
if (result.hasEditor)
|
||||
{
|
||||
_currentEditor = string.IsNullOrWhiteSpace(result.editorUserId) ? "none" : result.editorUserId;
|
||||
}
|
||||
else
|
||||
{
|
||||
_currentEditor = "none";
|
||||
}
|
||||
|
||||
RepaintSceneView();
|
||||
}
|
||||
|
||||
private static async Task Heartbeat()
|
||||
{
|
||||
HeartbeatResponse result = await Request<HeartbeatResponse>("heartbeat.php", new BaseRequest
|
||||
{
|
||||
projectName = _projectName,
|
||||
scenePath = _scenePath,
|
||||
userId = _userId,
|
||||
dateTime = DateTime.UtcNow.ToString("o")
|
||||
});
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
SetOffline();
|
||||
return;
|
||||
}
|
||||
|
||||
_offline = false;
|
||||
|
||||
if (result.hasEditor)
|
||||
_currentEditor = string.IsNullOrWhiteSpace(result.editorUserId) ? "none" : result.editorUserId;
|
||||
else
|
||||
_currentEditor = "none";
|
||||
|
||||
RepaintSceneView();
|
||||
}
|
||||
|
||||
private static async Task<T> Request<T>(string endpoint, object payload) where T : class
|
||||
{
|
||||
_requestInFlight = true;
|
||||
|
||||
try
|
||||
{
|
||||
string json = JsonUtility.ToJson(payload);
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(json);
|
||||
|
||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ServerUrl + endpoint);
|
||||
request.Method = "POST";
|
||||
request.ContentType = "application/json";
|
||||
request.Timeout = 5000;
|
||||
request.ReadWriteTimeout = 5000;
|
||||
request.ContentLength = bytes.Length;
|
||||
|
||||
using (var requestStream = await request.GetRequestStreamAsync())
|
||||
{
|
||||
await requestStream.WriteAsync(bytes, 0, bytes.Length);
|
||||
}
|
||||
|
||||
using var response = await request.GetResponseAsync();
|
||||
using var responseStream = response.GetResponseStream();
|
||||
using var reader = new StreamReader(responseStream);
|
||||
string responseJson = await reader.ReadToEndAsync();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(responseJson))
|
||||
return null;
|
||||
|
||||
if (!responseJson.TrimStart().StartsWith("{"))
|
||||
{
|
||||
Debug.LogError($"[ScenePresence] Non-JSON response from {endpoint}: {responseJson}");
|
||||
return null;
|
||||
}
|
||||
|
||||
//Debug.Log($"[ScenePresence] {endpoint} => {responseJson}");
|
||||
return JsonUtility.FromJson<T>(responseJson);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogError($"[ScenePresence] Request failed ({endpoint}): {ex}");
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
_requestInFlight = false;
|
||||
}
|
||||
}
|
||||
|
||||
private static void SetOffline()
|
||||
{
|
||||
_offline = true;
|
||||
RepaintSceneView();
|
||||
}
|
||||
|
||||
private static void RepaintSceneView()
|
||||
{
|
||||
if (SceneView.lastActiveSceneView != null)
|
||||
SceneView.lastActiveSceneView.Repaint();
|
||||
}
|
||||
|
||||
private static string LoadOrAskUserId()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (File.Exists(ConfigPath))
|
||||
{
|
||||
UserConfig saved = JsonUtility.FromJson<UserConfig>(File.ReadAllText(ConfigPath));
|
||||
if (saved != null && !string.IsNullOrWhiteSpace(saved.userId))
|
||||
return saved.userId.Trim();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogWarning($"[ScenePresence] Failed to read config: {ex.Message}");
|
||||
}
|
||||
|
||||
EditorApplication.delayCall += () =>
|
||||
{
|
||||
AskUserIdWindow.ShowWindow(SaveUserIdAndRefresh);
|
||||
};
|
||||
return null;
|
||||
}
|
||||
|
||||
private static void SaveUserIdAndRefresh(string userId)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(userId))
|
||||
return;
|
||||
|
||||
_userId = userId.Trim();
|
||||
SaveUserId(_userId);
|
||||
|
||||
EditorApplication.delayCall += async () =>
|
||||
{
|
||||
Scene scene = SceneManager.GetActiveScene();
|
||||
if (!string.IsNullOrEmpty(scene.path))
|
||||
{
|
||||
_scenePath = scene.path;
|
||||
await OpenScene();
|
||||
}
|
||||
|
||||
RepaintSceneView();
|
||||
};
|
||||
}
|
||||
|
||||
private static void SaveUserId(string userId)
|
||||
{
|
||||
try
|
||||
{
|
||||
string directory = Path.GetDirectoryName(ConfigPath);
|
||||
if (!Directory.Exists(directory))
|
||||
Directory.CreateDirectory(directory);
|
||||
|
||||
UserConfig config = new UserConfig { userId = userId };
|
||||
File.WriteAllText(ConfigPath, JsonUtility.ToJson(config, true));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogError($"[ScenePresence] Failed to save config: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
private class UserConfig
|
||||
{
|
||||
public string userId;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
private class BaseRequest
|
||||
{
|
||||
public string projectName;
|
||||
public string scenePath;
|
||||
public string userId;
|
||||
public string dateTime;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
private class EditModeRequest : BaseRequest
|
||||
{
|
||||
public bool force;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
private class OpenSceneResponse
|
||||
{
|
||||
public bool success;
|
||||
public bool hasEditor;
|
||||
public string editorUserId;
|
||||
public string editorDateTime;
|
||||
public string editorServerTakenAt;
|
||||
public bool editorOnline;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
private class HeartbeatResponse
|
||||
{
|
||||
public bool success;
|
||||
public bool hasEditor;
|
||||
public string editorUserId;
|
||||
public bool editorOnline;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
private class SetEditModeResponse
|
||||
{
|
||||
public bool success;
|
||||
public bool granted;
|
||||
public bool forced;
|
||||
public string occupiedBy;
|
||||
public string editorUserId;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
private class ReleaseResponse
|
||||
{
|
||||
public bool success;
|
||||
public bool released;
|
||||
}
|
||||
|
||||
private enum UiState
|
||||
{
|
||||
MissingUserId,
|
||||
Free,
|
||||
OwnedByOther,
|
||||
OwnedByMe,
|
||||
Offline
|
||||
}
|
||||
}
|
||||
|
||||
public class AskUserIdWindow : EditorWindow
|
||||
{
|
||||
private static Action<string> _onSave;
|
||||
private static AskUserIdWindow _instance;
|
||||
|
||||
private string _userId = "";
|
||||
|
||||
public static void ShowWindow(Action<string> onSave)
|
||||
{
|
||||
if (_instance != null)
|
||||
{
|
||||
_instance.Focus();
|
||||
return;
|
||||
}
|
||||
|
||||
_onSave = onSave;
|
||||
|
||||
_instance = CreateInstance<AskUserIdWindow>();
|
||||
_instance.titleContent = new GUIContent("Scene Presence Setup");
|
||||
_instance.minSize = new Vector2(240, 60);
|
||||
_instance.maxSize = new Vector2(240, 60);
|
||||
_instance.ShowUtility();
|
||||
_instance.Focus();
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (_instance == this)
|
||||
_instance = null;
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
GUILayout.Space(10);
|
||||
EditorGUIUtility.labelWidth = 60;
|
||||
_userId = EditorGUILayout.TextField("User ID", _userId);
|
||||
GUILayout.FlexibleSpace();
|
||||
|
||||
using (new EditorGUILayout.HorizontalScope())
|
||||
{
|
||||
GUILayout.FlexibleSpace();
|
||||
|
||||
GUI.enabled = !string.IsNullOrWhiteSpace(_userId);
|
||||
if (GUILayout.Button("Save", GUILayout.Width(80)))
|
||||
{
|
||||
_onSave?.Invoke(_userId.Trim());
|
||||
Close();
|
||||
}
|
||||
GUI.enabled = true;
|
||||
}
|
||||
|
||||
GUILayout.Space(10);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d9c85ae0c5f70cc4da07f387065c0015
|
||||
@@ -40780,6 +40780,187 @@ GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 7977652778530834609, guid: 9d4ef384d30b05644add2b0f2671172d, type: 3}
|
||||
m_PrefabInstance: {fileID: 2118815573}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &2120285857
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2120285861}
|
||||
- component: {fileID: 2120285860}
|
||||
- component: {fileID: 2120285859}
|
||||
- component: {fileID: 2120285858}
|
||||
- component: {fileID: 2120285863}
|
||||
- component: {fileID: 2120285864}
|
||||
- component: {fileID: 2120285865}
|
||||
m_Layer: 0
|
||||
m_Name: Test Binaural Trigger Box
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!65 &2120285858
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2120285857}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!23 &2120285859
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2120285857}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_MaskInteraction: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &2120285860
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2120285857}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &2120285861
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2120285857}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: 0.37134382, z: -0, w: 0.92849547}
|
||||
m_LocalPosition: {x: 4.27, y: 0.67, z: 4.34}
|
||||
m_LocalScale: {x: 4.0511775, y: 1, z: 0.080541}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 43.597, z: 0}
|
||||
--- !u!114 &2120285863
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2120285857}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4ccb80e2899444642bdbf406a3c31f7b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: AK.Wwise.Unity.MonoBehaviour::AkGameObj
|
||||
m_listeners:
|
||||
initialListenerList: []
|
||||
useDefaultListeners: 1
|
||||
isEnvironmentAware: 1
|
||||
isStaticObject: 0
|
||||
usePositionOffsetData: 0
|
||||
m_positionOffsetData:
|
||||
KeepMe: 0
|
||||
positionOffset: {x: 0, y: 0, z: 0}
|
||||
scalingFactor: 1
|
||||
m_posOffsetData: {fileID: 0}
|
||||
listenerMask: 1
|
||||
--- !u!114 &2120285864
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2120285857}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e373aeb0201d8a04f9db6db17c228f5b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: AK.Wwise.Unity.MonoBehaviour::AkTriggerCollisionEnter
|
||||
triggerObject: {fileID: 0}
|
||||
--- !u!114 &2120285865
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2120285857}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: eec618f338d13bf43b8519814d335311, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: AK.Wwise.Unity.MonoBehaviour::AkEvent
|
||||
triggerList: d1bbb3b5
|
||||
useOtherObject: 0
|
||||
actionOnEventType: 0
|
||||
curveInterpolation: 4
|
||||
enableActionOnEvent: 0
|
||||
data:
|
||||
idInternal: 0
|
||||
valueGuidInternal:
|
||||
WwiseObjectReference: {fileID: 11400000, guid: d5f4712941b510141bf650af8b0f2d30, type: 2}
|
||||
useCallbacks: 0
|
||||
stopSoundOnDestroy: 1
|
||||
Callbacks: []
|
||||
soundEmitterObject: {fileID: 0}
|
||||
transitionDuration: 0
|
||||
eventIdInternal: 0
|
||||
valueGuidInternal:
|
||||
m_callbackDataInternal: {fileID: 0}
|
||||
--- !u!1001 &2120929457
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -41166,6 +41347,75 @@ Transform:
|
||||
- {fileID: 1953778498}
|
||||
m_Father: {fileID: 1025255338}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &1326677913385073831
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 346295483107942936, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Tree
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: -0.1078
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: -0.1078
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: -0.1078
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 5.524
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 1.798
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 5.456
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7006957402099132261, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 58a9d39fccd0ba9429443d35e5338bab, type: 3}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -41175,3 +41425,5 @@ SceneRoots:
|
||||
- {fileID: 1101670451}
|
||||
- {fileID: 1965767837}
|
||||
- {fileID: 1391553830}
|
||||
- {fileID: 1326677913385073831}
|
||||
- {fileID: 2120285861}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 34c1f1bbe507acd448fc94425a572c72
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0fcf466f08dd9b4439177ae9f6a2a076
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c82d7ec196163f64991423bf74429269
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6cb5cc6c60a865b4ebbb2bf3c4de0674
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a49e34ddd972b8548a9d812d70472ed7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f6be9a5bd4c5ba0479b584c8770ec3d4
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 60b6e97f42842d0409efaa506e183378
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 86d5255903fbabb488efdecc1e90e3e9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0367716386562a94d9ba5303a1f5719b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0493cf503273a0c4cbc47ad2e92e054e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c54ed33b1d33f144aa9bf16f8cc3d902
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2461a33203f97944392039996beebce5
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d20b7f2497a48a446a7f67150da50bb1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7a44024e2016654091364546f74f65b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 301b78826af21e541b533964e2f7699c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 01ddfe2701ac3b44ea514d487d9ee3d7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e02d8ce30e35d744a82ed1e9d3a04b13
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 594a753c1d9367044a90fde7a6bf89a9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2780cda100375df4d861a844dc55a75d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0c777cd391b693a4799f6d2334af5d2d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: be063825da61d3043bfe155478b73093
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c4b58306c7d7eea438ac7a74adc2aad1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c699c26efdc8a074d8833bf38bc47eac
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 51df20af2b1062a46bd86c72537b7143
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 85b3a2ca9c840174bac00deb9dd823b9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 78ea50cbc521640418d6ccdd134c7b5d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 64f4f98867919014dbc369c3de08904b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c945e91273b87a045b723cc8ddded56c, type: 3}
|
||||
m_Name: 8419E167-8376-4134-809D-D888673B4AC1
|
||||
m_EditorClassIdentifier: AK.Wwise.Unity.API.WwiseTypes::WwiseEventReference
|
||||
objectName: Play_Test_Binaural
|
||||
id: 1094286959
|
||||
guid: 8419E167-8376-4134-809D-D888673B4AC1
|
||||
IsInUserDefinedSoundBank: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d5f4712941b510141bf650af8b0f2d30
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c945e91273b87a045b723cc8ddded56c, type: 3}
|
||||
m_Name: CA01D78F-151E-46B3-8B01-209B21D1DCAF
|
||||
m_EditorClassIdentifier: AK.Wwise.Unity.API.WwiseTypes::WwiseEventReference
|
||||
objectName: Play_playerFootsteps
|
||||
id: 1805011878
|
||||
guid: CA01D78F-151E-46B3-8B01-209B21D1DCAF
|
||||
IsInUserDefinedSoundBank: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 41aa8cbccefacf24b97ee9067316b3dc
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user