Compare commits
24 Commits
feat/add-d
...
200209df9a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
200209df9a | ||
|
|
fff812bd03 | ||
|
|
ffe6d73a50 | ||
|
|
303866fa6d | ||
|
|
30085123c2 | ||
|
|
e6bd28ec1c | ||
|
|
a7320b5ec6 | ||
|
|
fb9e02efd6 | ||
|
|
d7474f6d4a | ||
|
|
fbdfe808cc | ||
|
|
3f69369438 | ||
|
|
4c6c87f0b3 | ||
|
|
94e44ad7af | ||
|
|
8c4c2b372b | ||
|
|
b418333d67 | ||
|
|
6dd1c5efb8 | ||
|
|
4b4066fbcc | ||
|
|
55f71245b5 | ||
|
|
4c6f8f0768 | ||
|
|
c20993a512 | ||
|
|
4a3811f72e | ||
|
|
da530e2083 | ||
|
|
f8ef2c1c0e | ||
| e07fb7dc4b |
8
AGENTS.md
Normal file
8
AGENTS.md
Normal file
@@ -0,0 +1,8 @@
|
||||
<!-- UNITY CODE ASSIST INSTRUCTIONS START -->
|
||||
- Project name: HeadlessHazard
|
||||
- Unity version: Unity 6000.3.10f1
|
||||
- Active game object:
|
||||
- Name: GroundCheck
|
||||
- Tag: Untagged
|
||||
- Layer: Default
|
||||
<!-- UNITY CODE ASSIST INSTRUCTIONS END -->
|
||||
137
Assets/Art/Materials/Base.mat
Normal file
137
Assets/Art/Materials/Base.mat
Normal file
@@ -0,0 +1,137 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-7382003762351373957
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Base
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
8
Assets/Art/Materials/Base.mat.meta
Normal file
8
Assets/Art/Materials/Base.mat.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d1a257a00e51547a6be8f795bcdf5cae
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
143
Assets/Art/Materials/DevTex/Materials/Dev_trans_grey.mat
Normal file
143
Assets/Art/Materials/DevTex/Materials/Dev_trans_grey.mat
Normal file
@@ -0,0 +1,143 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Dev_trans_grey
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHAPREMULTIPLY_ON
|
||||
- _SURFACE_TYPE_TRANSPARENT
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
- DepthOnly
|
||||
- SHADOWCASTER
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 2800000, guid: 423391cbbe5ecd94b94ef01cc234a46d, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 423391cbbe5ecd94b94ef01cc234a46d, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 10
|
||||
- _DstBlendAlpha: 10
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 1
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 0.4745098}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 0.4745098}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &2556394321436131706
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e2ff028127aed49898d5db254c679ffa
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Art/Models/Level.meta
Normal file
8
Assets/Art/Models/Level.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c06cd160cc1ea554b8ba343bd3b83845
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
189
Assets/Code/Scripts/Interaction/ButtonSequenceDoorPuzzle.cs
Normal file
189
Assets/Code/Scripts/Interaction/ButtonSequenceDoorPuzzle.cs
Normal file
@@ -0,0 +1,189 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
public class ButtonSequenceDoorPuzzle : MonoBehaviour
|
||||
{
|
||||
[Header("References")]
|
||||
[Tooltip("All available buttons for this puzzle.")]
|
||||
[SerializeField] private WallInteractButton[] buttons;
|
||||
|
||||
[Tooltip("Door to open when the sequence is correct.")]
|
||||
[SerializeField] private SlidingDoor targetDoor;
|
||||
|
||||
[Tooltip("Optional blocks controlled by this puzzle (reset with SetOff on start/wrong input).")]
|
||||
[SerializeField] private TestBlock[] puzzleBlocks;
|
||||
|
||||
[Header("Sequence")]
|
||||
[Tooltip("Button indices (from the buttons array) that must be pressed in order. Example: 2,0,3")]
|
||||
[SerializeField] private int[] requiredSequence = { 0, 1, 2 };
|
||||
|
||||
[Tooltip("If true, wrong input resets progress back to 0.")]
|
||||
[SerializeField] private bool resetOnWrongPress = true;
|
||||
|
||||
[Tooltip("If true, puzzle can only be solved once.")]
|
||||
[SerializeField] private bool lockAfterSolved = true;
|
||||
|
||||
[Header("Debug")]
|
||||
[SerializeField] private bool enableDebugLogs = true;
|
||||
|
||||
private int m_progress;
|
||||
private bool m_isSolved;
|
||||
private UnityAction[] m_cachedListeners;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
SetAllBlocksOff();
|
||||
RegisterAllButtons();
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
UnregisterAllButtons();
|
||||
}
|
||||
|
||||
private void RegisterAllButtons()
|
||||
{
|
||||
if (buttons == null)
|
||||
return;
|
||||
|
||||
m_cachedListeners = new UnityAction[buttons.Length];
|
||||
|
||||
for (int i = 0; i < buttons.Length; i++)
|
||||
{
|
||||
WallInteractButton button = buttons[i];
|
||||
if (button == null)
|
||||
continue;
|
||||
|
||||
int buttonIndex = i;
|
||||
UnityAction action = () => OnButtonPressed(buttonIndex);
|
||||
m_cachedListeners[i] = action;
|
||||
button.OnInteract.AddListener(action);
|
||||
}
|
||||
}
|
||||
|
||||
private void UnregisterAllButtons()
|
||||
{
|
||||
if (buttons == null)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < buttons.Length; i++)
|
||||
{
|
||||
WallInteractButton button = buttons[i];
|
||||
if (button == null)
|
||||
continue;
|
||||
|
||||
if (m_cachedListeners != null && i < m_cachedListeners.Length && m_cachedListeners[i] != null)
|
||||
button.OnInteract.RemoveListener(m_cachedListeners[i]);
|
||||
}
|
||||
|
||||
m_cachedListeners = null;
|
||||
m_progress = 0;
|
||||
}
|
||||
|
||||
private void OnButtonPressed(int buttonIndex)
|
||||
{
|
||||
Log($"Button pressed: index {buttonIndex}");
|
||||
|
||||
if (m_isSolved && lockAfterSolved)
|
||||
{
|
||||
Log("Puzzle already solved and locked.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsSequenceValid())
|
||||
{
|
||||
Log("Invalid sequence configuration.");
|
||||
return;
|
||||
}
|
||||
|
||||
int expectedIndex = requiredSequence[m_progress];
|
||||
Log($"Expected button index: {expectedIndex} (step {m_progress + 1}/{requiredSequence.Length})");
|
||||
|
||||
if (buttonIndex == expectedIndex)
|
||||
{
|
||||
m_progress++;
|
||||
Log($"Correct input. Progress: {m_progress}/{requiredSequence.Length}");
|
||||
|
||||
if (m_progress >= requiredSequence.Length)
|
||||
{
|
||||
SolvePuzzle();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (resetOnWrongPress)
|
||||
{
|
||||
Log("Wrong input. Resetting sequence and turning puzzle blocks OFF.");
|
||||
m_progress = 0;
|
||||
SetAllBlocksOff();
|
||||
return;
|
||||
}
|
||||
|
||||
Log("Wrong input, but resetOnWrongPress is disabled.");
|
||||
}
|
||||
|
||||
private bool IsSequenceValid()
|
||||
{
|
||||
if (requiredSequence == null || requiredSequence.Length == 0)
|
||||
return false;
|
||||
|
||||
if (buttons == null || buttons.Length == 0)
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < requiredSequence.Length; i++)
|
||||
{
|
||||
int index = requiredSequence[i];
|
||||
if (index < 0 || index >= buttons.Length)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void SolvePuzzle()
|
||||
{
|
||||
m_isSolved = true;
|
||||
m_progress = 0;
|
||||
Log("Sequence completed. Opening door.");
|
||||
|
||||
if (targetDoor != null)
|
||||
targetDoor.Open();
|
||||
}
|
||||
|
||||
private void SetAllBlocksOff()
|
||||
{
|
||||
if (puzzleBlocks == null)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < puzzleBlocks.Length; i++)
|
||||
{
|
||||
if (puzzleBlocks[i] == null)
|
||||
continue;
|
||||
|
||||
puzzleBlocks[i].SetOff();
|
||||
}
|
||||
}
|
||||
|
||||
private void Log(string message)
|
||||
{
|
||||
if (!enableDebugLogs)
|
||||
return;
|
||||
|
||||
Debug.Log($"[{nameof(ButtonSequenceDoorPuzzle)}] {message}", this);
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
private void OnValidate()
|
||||
{
|
||||
if (requiredSequence == null)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < requiredSequence.Length; i++)
|
||||
{
|
||||
requiredSequence[i] = Math.Max(0, requiredSequence[i]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 920802292ba9a49d2bee3519a905717d
|
||||
8
Assets/Code/Scripts/Level.meta
Normal file
8
Assets/Code/Scripts/Level.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2e7b9c54377674993a7922f84e9cfcce
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
262
Assets/Code/Scripts/Level/SubtitleSequencePlayer.cs
Normal file
262
Assets/Code/Scripts/Level/SubtitleSequencePlayer.cs
Normal file
@@ -0,0 +1,262 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Reusable subtitle player that renders and plays subtitle lines loaded from JSON.
|
||||
/// </summary>
|
||||
public class SubtitleSequencePlayer : MonoBehaviour
|
||||
{
|
||||
[Serializable]
|
||||
private struct SubtitleLine
|
||||
{
|
||||
public string speaker;
|
||||
public string text;
|
||||
public float duration;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
private struct SubtitleFile
|
||||
{
|
||||
public SubtitleLine[] lines;
|
||||
}
|
||||
|
||||
[Header("Optional Default Data")]
|
||||
[Tooltip("Used only if trigger zone calls PlayDefault().")]
|
||||
[SerializeField] private TextAsset defaultSubtitleJson;
|
||||
|
||||
[SerializeField] private float typewriterCharsPerSecond = 40f;
|
||||
[SerializeField] private float fadeDuration = 0.2f;
|
||||
[SerializeField] private float gapBetweenLines = 0.15f;
|
||||
|
||||
[Header("Visual")]
|
||||
[SerializeField] private int fontSize = 28;
|
||||
[SerializeField] private int speakerFontSize = 18;
|
||||
[SerializeField] private float horizontalPadding = 28f;
|
||||
[SerializeField] private float bottomOffset = 56f;
|
||||
[SerializeField] private Color textColor = new Color(1f, 1f, 1f, 1f);
|
||||
[SerializeField] private Color speakerColor = new Color(1f, 0.85f, 0.35f, 1f);
|
||||
[SerializeField] private Color backgroundColor = new Color(0f, 0f, 0f, 0.62f);
|
||||
|
||||
private string m_currentSpeaker;
|
||||
private string m_currentText;
|
||||
private GUIStyle m_textStyle;
|
||||
private GUIStyle m_speakerStyle;
|
||||
private Texture2D m_background;
|
||||
private bool m_isShowing;
|
||||
private bool m_isPlaying;
|
||||
private float m_alpha;
|
||||
private SubtitleLine[] m_runtimeLines = Array.Empty<SubtitleLine>();
|
||||
|
||||
public bool IsPlaying => m_isPlaying;
|
||||
|
||||
public bool TryPlay(TextAsset subtitleJson, float initialDelay = 0f)
|
||||
{
|
||||
if (m_isPlaying)
|
||||
return false;
|
||||
|
||||
if (!TryReadLinesFromJson(subtitleJson, out SubtitleLine[] parsedLines))
|
||||
return false;
|
||||
|
||||
m_runtimeLines = parsedLines;
|
||||
StartCoroutine(PlaySequence(initialDelay));
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool PlayDefault(float initialDelay = 0f)
|
||||
{
|
||||
return TryPlay(defaultSubtitleJson, initialDelay);
|
||||
}
|
||||
|
||||
private IEnumerator PlaySequence(float initialDelay)
|
||||
{
|
||||
m_isPlaying = true;
|
||||
|
||||
if (m_runtimeLines == null || m_runtimeLines.Length == 0)
|
||||
{
|
||||
m_isPlaying = false;
|
||||
yield break;
|
||||
}
|
||||
|
||||
if (initialDelay > 0f)
|
||||
yield return new WaitForSeconds(initialDelay);
|
||||
|
||||
for (int i = 0; i < m_runtimeLines.Length; i++)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(m_runtimeLines[i].text) || m_runtimeLines[i].duration <= 0f)
|
||||
continue;
|
||||
|
||||
yield return StartCoroutine(ShowLine(m_runtimeLines[i]));
|
||||
|
||||
if (gapBetweenLines > 0f)
|
||||
yield return new WaitForSeconds(gapBetweenLines);
|
||||
}
|
||||
|
||||
m_currentSpeaker = string.Empty;
|
||||
m_currentText = string.Empty;
|
||||
m_isPlaying = false;
|
||||
}
|
||||
|
||||
private bool TryReadLinesFromJson(TextAsset subtitleJson, out SubtitleLine[] parsedLines)
|
||||
{
|
||||
parsedLines = Array.Empty<SubtitleLine>();
|
||||
|
||||
if (subtitleJson == null || string.IsNullOrWhiteSpace(subtitleJson.text))
|
||||
return false;
|
||||
|
||||
SubtitleFile file;
|
||||
try
|
||||
{
|
||||
file = JsonUtility.FromJson<SubtitleFile>(subtitleJson.text);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (file.lines == null || file.lines.Length == 0)
|
||||
return false;
|
||||
|
||||
parsedLines = file.lines;
|
||||
return true;
|
||||
}
|
||||
|
||||
private IEnumerator ShowLine(SubtitleLine line)
|
||||
{
|
||||
m_currentSpeaker = line.speaker;
|
||||
m_currentText = string.Empty;
|
||||
m_isShowing = true;
|
||||
|
||||
if (fadeDuration > 0f)
|
||||
{
|
||||
float fadeIn = 0f;
|
||||
while (fadeIn < fadeDuration)
|
||||
{
|
||||
fadeIn += Time.deltaTime;
|
||||
m_alpha = Mathf.Clamp01(fadeIn / fadeDuration);
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_alpha = 1f;
|
||||
}
|
||||
|
||||
float typeTime = 0f;
|
||||
int totalChars = line.text.Length;
|
||||
if (typewriterCharsPerSecond > 0f)
|
||||
{
|
||||
while (m_currentText.Length < totalChars)
|
||||
{
|
||||
typeTime += Time.deltaTime;
|
||||
int visibleChars = Mathf.Clamp(Mathf.FloorToInt(typeTime * typewriterCharsPerSecond), 0, totalChars);
|
||||
m_currentText = line.text.Substring(0, visibleChars);
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_currentText = line.text;
|
||||
}
|
||||
|
||||
float holdDuration = Mathf.Max(0f, line.duration - (typewriterCharsPerSecond > 0f ? typeTime : 0f));
|
||||
if (holdDuration > 0f)
|
||||
yield return new WaitForSeconds(holdDuration);
|
||||
|
||||
if (fadeDuration > 0f)
|
||||
{
|
||||
float fadeOut = fadeDuration;
|
||||
while (fadeOut > 0f)
|
||||
{
|
||||
fadeOut -= Time.deltaTime;
|
||||
m_alpha = Mathf.Clamp01(fadeOut / fadeDuration);
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
|
||||
m_alpha = 0f;
|
||||
m_isShowing = false;
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
if (!m_isShowing || string.IsNullOrEmpty(m_currentText))
|
||||
return;
|
||||
|
||||
EnsureStyles();
|
||||
|
||||
float maxWidth = Mathf.Min(Screen.width - 24f, 940f);
|
||||
float textWidth = maxWidth - horizontalPadding * 2f;
|
||||
float speakerHeight = string.IsNullOrEmpty(m_currentSpeaker)
|
||||
? 0f
|
||||
: m_speakerStyle.CalcHeight(new GUIContent(m_currentSpeaker), textWidth);
|
||||
float textHeight = m_textStyle.CalcHeight(new GUIContent(string.IsNullOrEmpty(m_currentText) ? " " : m_currentText), textWidth);
|
||||
|
||||
float boxWidth = maxWidth;
|
||||
float boxHeight = speakerHeight + textHeight + 28f;
|
||||
float boxX = (Screen.width - boxWidth) * 0.5f;
|
||||
float boxY = Screen.height - bottomOffset - boxHeight;
|
||||
|
||||
Rect boxRect = new Rect(boxX, boxY, boxWidth, boxHeight);
|
||||
Color previousColor = GUI.color;
|
||||
GUI.color = new Color(1f, 1f, 1f, m_alpha);
|
||||
GUI.DrawTexture(boxRect, m_background);
|
||||
|
||||
float yOffset = boxRect.y + 10f;
|
||||
if (!string.IsNullOrEmpty(m_currentSpeaker))
|
||||
{
|
||||
Rect speakerRect = new Rect(
|
||||
boxRect.x + horizontalPadding,
|
||||
yOffset,
|
||||
textWidth,
|
||||
speakerHeight);
|
||||
GUI.Label(speakerRect, m_currentSpeaker, m_speakerStyle);
|
||||
yOffset += speakerHeight + 2f;
|
||||
}
|
||||
|
||||
Rect textRect = new Rect(
|
||||
boxRect.x + horizontalPadding,
|
||||
yOffset,
|
||||
textWidth,
|
||||
textHeight);
|
||||
|
||||
GUI.Label(textRect, m_currentText, m_textStyle);
|
||||
GUI.color = previousColor;
|
||||
}
|
||||
|
||||
private void EnsureStyles()
|
||||
{
|
||||
if (m_textStyle != null)
|
||||
return;
|
||||
|
||||
m_background = new Texture2D(1, 1);
|
||||
m_background.SetPixel(0, 0, backgroundColor);
|
||||
m_background.Apply();
|
||||
|
||||
m_textStyle = new GUIStyle(GUI.skin.label)
|
||||
{
|
||||
alignment = TextAnchor.MiddleCenter,
|
||||
fontSize = fontSize,
|
||||
wordWrap = true,
|
||||
richText = false,
|
||||
clipping = TextClipping.Clip,
|
||||
};
|
||||
m_textStyle.normal.textColor = textColor;
|
||||
|
||||
m_speakerStyle = new GUIStyle(GUI.skin.label)
|
||||
{
|
||||
alignment = TextAnchor.MiddleCenter,
|
||||
fontSize = speakerFontSize,
|
||||
fontStyle = FontStyle.Bold,
|
||||
wordWrap = false,
|
||||
clipping = TextClipping.Clip,
|
||||
};
|
||||
m_speakerStyle.normal.textColor = speakerColor;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (m_background != null)
|
||||
Destroy(m_background);
|
||||
}
|
||||
}
|
||||
2
Assets/Code/Scripts/Level/SubtitleSequencePlayer.cs.meta
Normal file
2
Assets/Code/Scripts/Level/SubtitleSequencePlayer.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4947743d7bc9b4589b9932d429517d3a
|
||||
51
Assets/Code/Scripts/Level/SubtitleTriggerZone.cs
Normal file
51
Assets/Code/Scripts/Level/SubtitleTriggerZone.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Trigger zone that starts a subtitle JSON sequence on a linked SubtitleSequencePlayer.
|
||||
/// Put this on the zone collider object, and link the player on your empty object.
|
||||
/// </summary>
|
||||
[RequireComponent(typeof(Collider))]
|
||||
public class SubtitleTriggerZone : MonoBehaviour
|
||||
{
|
||||
[Header("References")]
|
||||
[SerializeField] private SubtitleSequencePlayer subtitlePlayer;
|
||||
[SerializeField] private TextAsset subtitleJson;
|
||||
|
||||
[Header("Playback")]
|
||||
[SerializeField] private float initialDelay = 0f;
|
||||
[SerializeField] private bool oneShot = true;
|
||||
|
||||
private bool m_hasPlayed;
|
||||
|
||||
private void Reset()
|
||||
{
|
||||
Collider col = GetComponent<Collider>();
|
||||
col.isTrigger = true;
|
||||
}
|
||||
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (!IsPlayer(other))
|
||||
return;
|
||||
|
||||
if (oneShot && m_hasPlayed)
|
||||
return;
|
||||
|
||||
if (subtitlePlayer == null)
|
||||
return;
|
||||
|
||||
if (subtitlePlayer.TryPlay(subtitleJson, initialDelay))
|
||||
m_hasPlayed = true;
|
||||
}
|
||||
|
||||
private bool IsPlayer(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Player"))
|
||||
return true;
|
||||
|
||||
if (other.GetComponentInParent<PlayerMovement>() != null)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
2
Assets/Code/Scripts/Level/SubtitleTriggerZone.cs.meta
Normal file
2
Assets/Code/Scripts/Level/SubtitleTriggerZone.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 33a33c65f75e2443383c2e29bd6bf5f1
|
||||
@@ -100,7 +100,16 @@
|
||||
"name": "Sprint",
|
||||
"type": "Button",
|
||||
"id": "641cd816-40e6-41b4-8c3d-04687c349290",
|
||||
"expectedControlType": "Button",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "Shift",
|
||||
"type": "Button",
|
||||
"id": "082f2b53-d4e1-4cc7-b174-c2975cd57d3f",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
@@ -513,6 +522,17 @@
|
||||
"action": "Pickup",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "768d31fb-914a-42c1-900b-45ff3725e46c",
|
||||
"path": "<Keyboard>/shift",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": ";Touch;Keyboard&Mouse",
|
||||
"action": "Shift",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
97
Assets/Code/Scripts/Player/PlayerHeadControll.cs
Normal file
97
Assets/Code/Scripts/Player/PlayerHeadControll.cs
Normal file
@@ -0,0 +1,97 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerHeadController : MonoBehaviour
|
||||
{
|
||||
public Transform Head;
|
||||
public Transform CameraTransform;
|
||||
|
||||
public float ThrowForce = 10f;
|
||||
public float PickupDistance = 3f;
|
||||
|
||||
public bool isHoldingHead = true;
|
||||
|
||||
private Rigidbody m_headRigidbody;
|
||||
|
||||
private Vector3 m_headInitialLocalPos;
|
||||
private Quaternion m_headInitialLocalRot;
|
||||
|
||||
private Animator animator;
|
||||
private PlayerInputController input;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
animator = GetComponent<Animator>();
|
||||
input = GetComponent<PlayerInputController>();
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
|
||||
m_headInitialLocalPos = Head.localPosition;
|
||||
m_headInitialLocalRot = Head.localRotation;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (input.ThrowPressed)
|
||||
{
|
||||
ThrowHead();
|
||||
}
|
||||
|
||||
if (input.PickupPressed)
|
||||
{
|
||||
TryPickupHead();
|
||||
}
|
||||
}
|
||||
|
||||
private void ThrowHead()
|
||||
{
|
||||
if (!isHoldingHead)
|
||||
return;
|
||||
|
||||
animator.SetTrigger("Throw");
|
||||
|
||||
isHoldingHead = false;
|
||||
|
||||
Head.SetParent(null);
|
||||
|
||||
m_headRigidbody = Head.gameObject.AddComponent<Rigidbody>();
|
||||
m_headRigidbody.mass = 1f;
|
||||
|
||||
m_headRigidbody.constraints =
|
||||
RigidbodyConstraints.FreezeRotationX |
|
||||
RigidbodyConstraints.FreezeRotationZ |
|
||||
RigidbodyConstraints.FreezeRotationY;
|
||||
|
||||
m_headRigidbody.AddForce(CameraTransform.forward * ThrowForce, ForceMode.Impulse);
|
||||
}
|
||||
|
||||
private void TryPickupHead()
|
||||
{
|
||||
if (isHoldingHead)
|
||||
return;
|
||||
|
||||
float distance = Vector3.Distance(transform.position, Head.position);
|
||||
|
||||
if (distance <= PickupDistance)
|
||||
{
|
||||
PickupHead();
|
||||
}
|
||||
}
|
||||
|
||||
private void PickupHead()
|
||||
{
|
||||
isHoldingHead = true;
|
||||
|
||||
if (m_headRigidbody != null)
|
||||
{
|
||||
Destroy(m_headRigidbody);
|
||||
}
|
||||
|
||||
Head.SetParent(transform);
|
||||
|
||||
Head.localPosition = m_headInitialLocalPos;
|
||||
Head.localRotation = m_headInitialLocalRot;
|
||||
}
|
||||
}
|
||||
2
Assets/Code/Scripts/Player/PlayerHeadControll.cs.meta
Normal file
2
Assets/Code/Scripts/Player/PlayerHeadControll.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2da51dfecccc45b469912e3bb3f1953b
|
||||
56
Assets/Code/Scripts/Player/PlayerInputHandler.cs
Normal file
56
Assets/Code/Scripts/Player/PlayerInputHandler.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.Windows;
|
||||
|
||||
public class PlayerInputController : MonoBehaviour
|
||||
{
|
||||
public InputActionAsset InputActions;
|
||||
|
||||
private InputAction m_moveAction;
|
||||
private InputAction m_lookAction;
|
||||
private InputAction m_jumpAction;
|
||||
private InputAction m_throwAction;
|
||||
private InputAction m_pickupAction;
|
||||
private InputAction m_shiftAction;
|
||||
|
||||
public Vector2 MoveAmount { get; private set; }
|
||||
public Vector2 LookAmount { get; private set; }
|
||||
|
||||
public bool JumpPressed { get; private set; }
|
||||
public bool ShiftPressed { get; private set; }
|
||||
public bool ThrowPressed { get; private set; }
|
||||
public bool PickupPressed { get; private set; }
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
var map = InputActions.FindActionMap("Player");
|
||||
|
||||
m_moveAction = map.FindAction("Move");
|
||||
m_lookAction = map.FindAction("Look");
|
||||
m_jumpAction = map.FindAction("Jump");
|
||||
m_shiftAction = map.FindAction("Shift");
|
||||
m_throwAction = map.FindAction("Throw");
|
||||
m_pickupAction = map.FindAction("Pickup");
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
InputActions.FindActionMap("Player").Enable();
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
InputActions.FindActionMap("Player").Disable();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
MoveAmount = m_moveAction.ReadValue<Vector2>();
|
||||
LookAmount = m_lookAction.ReadValue<Vector2>();
|
||||
|
||||
ShiftPressed = m_shiftAction.IsPressed();
|
||||
JumpPressed = m_jumpAction.WasPressedThisFrame();
|
||||
ThrowPressed = m_throwAction.WasPressedThisFrame();
|
||||
PickupPressed = m_pickupAction.WasPressedThisFrame();
|
||||
}
|
||||
}
|
||||
2
Assets/Code/Scripts/Player/PlayerInputHandler.cs.meta
Normal file
2
Assets/Code/Scripts/Player/PlayerInputHandler.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1d8f349ed7dc088a4a6e2690ee87094a
|
||||
34
Assets/Code/Scripts/Player/PlayerJump.cs
Normal file
34
Assets/Code/Scripts/Player/PlayerJump.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerJump : MonoBehaviour
|
||||
{
|
||||
public float JumpForce = 5;
|
||||
|
||||
public Transform GroundCheck;
|
||||
public float GroundCheckRadius = 0.2f;
|
||||
|
||||
private Rigidbody m_rigidbody;
|
||||
private PlayerInputController input;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
m_rigidbody = GetComponent<Rigidbody>();
|
||||
input = GetComponent<PlayerInputController>();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (input.JumpPressed)
|
||||
{
|
||||
Jump();
|
||||
}
|
||||
}
|
||||
|
||||
public void Jump()
|
||||
{
|
||||
if (Physics.CheckSphere(GroundCheck.position, GroundCheckRadius, LayerMask.GetMask("Ground")))
|
||||
{
|
||||
m_rigidbody.AddForce(Vector3.up * JumpForce, ForceMode.Impulse);
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Code/Scripts/Player/PlayerJump.cs.meta
Normal file
2
Assets/Code/Scripts/Player/PlayerJump.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9c524d12bc1668e42a00cbd8050107f6
|
||||
57
Assets/Code/Scripts/Player/PlayerLook.cs
Normal file
57
Assets/Code/Scripts/Player/PlayerLook.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerLook : MonoBehaviour
|
||||
{
|
||||
public Transform CameraTransform;
|
||||
public Transform Head;
|
||||
|
||||
public float RotateSpeed = 5;
|
||||
public float MaxLookAngle = 90f;
|
||||
|
||||
private float m_verticalRotation = 0f;
|
||||
|
||||
private Rigidbody m_rigidbody;
|
||||
private PlayerInputController input;
|
||||
private PlayerHeadController headController;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
m_rigidbody = GetComponent<Rigidbody>();
|
||||
input = GetComponent<PlayerInputController>();
|
||||
headController = GetComponent<PlayerHeadController>();
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
Vector2 m_lookAmt = input.LookAmount;
|
||||
|
||||
if (m_lookAmt.magnitude <= 0.01f)
|
||||
return;
|
||||
|
||||
if (!headController.isHoldingHead || input.ShiftPressed && headController.isHoldingHead)
|
||||
{
|
||||
float headRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
Head.Rotate(0, headRotation, 0);
|
||||
|
||||
if (CameraTransform != null)
|
||||
{
|
||||
m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
float horizontalRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
Quaternion deltaRotation = Quaternion.Euler(0, horizontalRotation, 0);
|
||||
m_rigidbody.MoveRotation(m_rigidbody.rotation * deltaRotation);
|
||||
|
||||
if (CameraTransform != null)
|
||||
{
|
||||
m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Code/Scripts/Player/PlayerLook.cs.meta
Normal file
2
Assets/Code/Scripts/Player/PlayerLook.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c1ddada0161b8c4783806ef6775348a
|
||||
@@ -1,216 +1,74 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
public class PlayerMovement : MonoBehaviour
|
||||
{
|
||||
public InputActionAsset InputActions;
|
||||
|
||||
private InputAction m_moveAction;
|
||||
private InputAction m_lookAction;
|
||||
private InputAction m_jumpAction;
|
||||
private InputAction m_throwAction;
|
||||
private InputAction m_pickupAction;
|
||||
|
||||
private Vector2 m_moveAmt;
|
||||
private Vector2 m_lookAmt;
|
||||
|
||||
private Rigidbody m_rigidbody;
|
||||
|
||||
[Header("Camera/Head")]
|
||||
public Transform CameraTransform;
|
||||
public float MaxLookAngle = 90f;
|
||||
|
||||
private float m_verticalRotation = 0f;
|
||||
|
||||
public float WalkSpeed = 10;
|
||||
public float RotateSpeed = 5;
|
||||
public float JumpForce = 5;
|
||||
|
||||
public Transform GroundCheck;
|
||||
public float GroundCheckRadius = 0.2f;
|
||||
public float rotationSpeed = 10f;
|
||||
|
||||
public Animator animator;
|
||||
public Transform cameraTransform;
|
||||
|
||||
[Header("Head Settings")]
|
||||
public Transform Head;
|
||||
public float ThrowForce = 10f;
|
||||
public float PickupDistance = 3f;
|
||||
private Rigidbody m_rigidbody;
|
||||
private PlayerInputController input;
|
||||
private PlayerHeadController headController;
|
||||
|
||||
private bool m_isHeadThrown = false;
|
||||
private Rigidbody m_headRigidbody;
|
||||
|
||||
private Vector3 m_headInitialLocalPos;
|
||||
private Quaternion m_headInitialLocalRot;
|
||||
private Vector3 moveDirection;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
var map = InputActions.FindActionMap("Player");
|
||||
|
||||
m_moveAction = map.FindAction("Move");
|
||||
m_lookAction = map.FindAction("Look");
|
||||
m_jumpAction = map.FindAction("Jump");
|
||||
// Support both old and new action names without breaking the scene setup.
|
||||
m_throwAction = map.FindAction("Throw") ?? map.FindAction("Attack");
|
||||
m_pickupAction = map.FindAction("Pickup") ?? map.FindAction("Interact");
|
||||
|
||||
m_rigidbody = GetComponent<Rigidbody>();
|
||||
input = GetComponent<PlayerInputController>();
|
||||
animator = GetComponent<Animator>();
|
||||
}
|
||||
headController = GetComponent<PlayerHeadController>();
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
InputActions.FindActionMap("Player").Enable();
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
InputActions.FindActionMap("Player").Disable();
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
m_headInitialLocalPos = Head.localPosition;
|
||||
m_headInitialLocalRot = Head.localRotation;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
m_moveAmt = m_moveAction != null ? m_moveAction.ReadValue<Vector2>() : Vector2.zero;
|
||||
m_lookAmt = m_lookAction != null ? m_lookAction.ReadValue<Vector2>() : Vector2.zero;
|
||||
|
||||
if (m_jumpAction != null && m_jumpAction.WasPressedThisFrame())
|
||||
if (m_rigidbody != null)
|
||||
{
|
||||
Jump();
|
||||
m_rigidbody.freezeRotation = true;
|
||||
}
|
||||
|
||||
if (m_throwAction != null && m_throwAction.WasPressedThisFrame())
|
||||
{
|
||||
ThrowHead();
|
||||
}
|
||||
|
||||
if (m_pickupAction != null && (m_pickupAction.WasPressedThisFrame() || m_pickupAction.WasPerformedThisFrame()))
|
||||
{
|
||||
TryPickupHead();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
Walking();
|
||||
Rotating();
|
||||
}
|
||||
Vector2 m_moveAmt = input.MoveAmount;
|
||||
|
||||
private void Walking()
|
||||
{
|
||||
Vector3 move =
|
||||
transform.forward * m_moveAmt.y +
|
||||
transform.right * m_moveAmt.x;
|
||||
float horizontal = m_moveAmt.x;
|
||||
float vertical = m_moveAmt.y;
|
||||
|
||||
m_rigidbody.MovePosition(
|
||||
m_rigidbody.position + move * WalkSpeed * Time.deltaTime
|
||||
);
|
||||
Vector3 cameraForward = cameraTransform.forward;
|
||||
Vector3 cameraRight = cameraTransform.right;
|
||||
|
||||
cameraForward.y = 0f;
|
||||
cameraRight.y = 0f;
|
||||
|
||||
cameraForward.Normalize();
|
||||
cameraRight.Normalize();
|
||||
|
||||
moveDirection = (cameraForward * vertical + cameraRight * horizontal).normalized;
|
||||
|
||||
if (headController.isHoldingHead)
|
||||
{
|
||||
m_rigidbody.MovePosition(
|
||||
m_rigidbody.position + Time.deltaTime * WalkSpeed * moveDirection
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (moveDirection.magnitude >= 0.1f)
|
||||
{
|
||||
m_rigidbody.MovePosition(
|
||||
m_rigidbody.position + Time.deltaTime * WalkSpeed * moveDirection
|
||||
);
|
||||
|
||||
Quaternion targetRotation = Quaternion.LookRotation(moveDirection);
|
||||
transform.rotation = Quaternion.Slerp(
|
||||
transform.rotation,
|
||||
targetRotation,
|
||||
rotationSpeed * Time.deltaTime
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
bool isMoving = m_moveAmt.magnitude > 0.1f;
|
||||
animator.SetBool("isWalking", isMoving);
|
||||
}
|
||||
|
||||
|
||||
private void Rotating()
|
||||
{
|
||||
if (m_lookAmt.magnitude <= 0.01f)
|
||||
return;
|
||||
|
||||
if (!m_isHeadThrown)
|
||||
{
|
||||
// NORMAL BODY ROTATION
|
||||
float horizontalRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
Quaternion deltaRotation = Quaternion.Euler(0, horizontalRotation, 0);
|
||||
m_rigidbody.MoveRotation(m_rigidbody.rotation * deltaRotation);
|
||||
|
||||
if (CameraTransform != null)
|
||||
{
|
||||
m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// HEAD ROTATION ON GROUND
|
||||
float headRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
Head.Rotate(0, headRotation, 0);
|
||||
|
||||
// Add vertical camera rotation when head is on ground
|
||||
if (CameraTransform != null)
|
||||
{
|
||||
m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Jump()
|
||||
{
|
||||
if (Physics.CheckSphere(GroundCheck.position, GroundCheckRadius, LayerMask.GetMask("Ground"))) {
|
||||
m_rigidbody.AddForce(Vector3.up * JumpForce, ForceMode.Impulse);
|
||||
}
|
||||
}
|
||||
|
||||
private void ThrowHead()
|
||||
{
|
||||
if (m_isHeadThrown)
|
||||
return;
|
||||
|
||||
animator.SetTrigger("Throw");
|
||||
|
||||
m_isHeadThrown = true;
|
||||
|
||||
Head.SetParent(null);
|
||||
|
||||
m_headRigidbody = Head.gameObject.AddComponent<Rigidbody>();
|
||||
m_headRigidbody.mass = 1f;
|
||||
|
||||
m_headRigidbody.constraints =
|
||||
RigidbodyConstraints.FreezeRotationX |
|
||||
RigidbodyConstraints.FreezeRotationZ;
|
||||
|
||||
m_headRigidbody.AddForce(CameraTransform.forward * ThrowForce, ForceMode.Impulse);
|
||||
}
|
||||
|
||||
private void TryPickupHead()
|
||||
{
|
||||
if (!m_isHeadThrown)
|
||||
return;
|
||||
|
||||
float distance = Vector3.Distance(transform.position, Head.position);
|
||||
|
||||
if (distance <= PickupDistance)
|
||||
{
|
||||
PickupHead();
|
||||
}
|
||||
}
|
||||
|
||||
private void PickupHead()
|
||||
{
|
||||
m_isHeadThrown = false;
|
||||
|
||||
// Remove Rigidbody
|
||||
if (m_headRigidbody != null)
|
||||
{
|
||||
Destroy(m_headRigidbody);
|
||||
}
|
||||
|
||||
// Reattach to player
|
||||
Head.SetParent(transform);
|
||||
|
||||
// Reset position & rotation
|
||||
Head.localPosition = m_headInitialLocalPos;
|
||||
Head.localRotation = m_headInitialLocalRot;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,2 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1d8f349ed7dc088a4a6e2690ee87094a
|
||||
guid: 7f91586e8c2742341aa8f6925e597bf1
|
||||
216
Assets/Code/Scripts/Player/test.cs
Normal file
216
Assets/Code/Scripts/Player/test.cs
Normal file
@@ -0,0 +1,216 @@
|
||||
//using TMPro;
|
||||
//using UnityEngine;
|
||||
//using UnityEngine.InputSystem;
|
||||
|
||||
//public class PlayerMovement : MonoBehaviour
|
||||
//{
|
||||
// public InputActionAsset InputActions;
|
||||
|
||||
// private InputAction m_moveAction;
|
||||
// private InputAction m_lookAction;
|
||||
// private InputAction m_jumpAction;
|
||||
// private InputAction m_throwAction;
|
||||
// private InputAction m_pickupAction;
|
||||
|
||||
// private Vector2 m_moveAmt;
|
||||
// private Vector2 m_lookAmt;
|
||||
|
||||
// private Rigidbody m_rigidbody;
|
||||
|
||||
// [Header("Camera/Head")]
|
||||
// public Transform CameraTransform;
|
||||
// public float MaxLookAngle = 90f;
|
||||
|
||||
// private float m_verticalRotation = 0f;
|
||||
|
||||
// public float WalkSpeed = 10;
|
||||
// public float RotateSpeed = 5;
|
||||
// public float JumpForce = 5;
|
||||
|
||||
// public Transform GroundCheck;
|
||||
// public float GroundCheckRadius = 0.2f;
|
||||
|
||||
// public Animator animator;
|
||||
|
||||
// [Header("Head Settings")]
|
||||
// public Transform Head;
|
||||
// public float ThrowForce = 10f;
|
||||
// public float PickupDistance = 3f;
|
||||
|
||||
// private bool m_isHeadThrown = false;
|
||||
// private Rigidbody m_headRigidbody;
|
||||
|
||||
// private Vector3 m_headInitialLocalPos;
|
||||
// private Quaternion m_headInitialLocalRot;
|
||||
|
||||
// private void Awake()
|
||||
// {
|
||||
// var map = InputActions.FindActionMap("Player");
|
||||
|
||||
// m_moveAction = map.FindAction("Move");
|
||||
// m_lookAction = map.FindAction("Look");
|
||||
// m_jumpAction = map.FindAction("Jump");
|
||||
// m_throwAction = map.FindAction("Throw");
|
||||
// m_pickupAction = map.FindAction("Pickup");
|
||||
|
||||
// m_rigidbody = GetComponent<Rigidbody>();
|
||||
// animator = GetComponent<Animator>();
|
||||
// }
|
||||
|
||||
// private void OnEnable()
|
||||
// {
|
||||
// InputActions.FindActionMap("Player").Enable();
|
||||
// }
|
||||
|
||||
// private void OnDisable()
|
||||
// {
|
||||
// InputActions.FindActionMap("Player").Disable();
|
||||
// }
|
||||
|
||||
// void Start()
|
||||
// {
|
||||
// Cursor.lockState = CursorLockMode.Locked;
|
||||
// m_headInitialLocalPos = Head.localPosition;
|
||||
// m_headInitialLocalRot = Head.localRotation;
|
||||
// }
|
||||
|
||||
// private void Update()
|
||||
// {
|
||||
// m_moveAmt = m_moveAction.ReadValue<Vector2>();
|
||||
// m_lookAmt = m_lookAction.ReadValue<Vector2>();
|
||||
|
||||
// if (m_jumpAction.WasPressedThisFrame())
|
||||
// {
|
||||
// Jump();
|
||||
// }
|
||||
|
||||
// if (m_throwAction.WasPressedThisFrame())
|
||||
// {
|
||||
// ThrowHead();
|
||||
// }
|
||||
|
||||
// if (m_pickupAction.WasPressedThisFrame())
|
||||
// {
|
||||
// TryPickupHead();
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
// private void FixedUpdate()
|
||||
// {
|
||||
// Walking();
|
||||
// Rotating();
|
||||
// }
|
||||
|
||||
// private void Walking()
|
||||
// {
|
||||
// Vector3 move =
|
||||
// transform.forward * m_moveAmt.y +
|
||||
// transform.right * m_moveAmt.x;
|
||||
|
||||
// m_rigidbody.MovePosition(
|
||||
// m_rigidbody.position + move * WalkSpeed * Time.deltaTime
|
||||
// );
|
||||
|
||||
// bool isMoving = m_moveAmt.magnitude > 0.1f;
|
||||
// animator.SetBool("isWalking", isMoving);
|
||||
// }
|
||||
|
||||
|
||||
// private void Rotating()
|
||||
// {
|
||||
// if (m_lookAmt.magnitude <= 0.01f)
|
||||
// return;
|
||||
|
||||
// if (!m_isHeadThrown)
|
||||
// {
|
||||
// NORMAL BODY ROTATION
|
||||
// float horizontalRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
// Quaternion deltaRotation = Quaternion.Euler(0, horizontalRotation, 0);
|
||||
// m_rigidbody.MoveRotation(m_rigidbody.rotation * deltaRotation);
|
||||
|
||||
// if (CameraTransform != null)
|
||||
// {
|
||||
// m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
// m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
// CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// HEAD ROTATION ON GROUND
|
||||
// float headRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
// Head.Rotate(0, headRotation, 0);
|
||||
|
||||
// Add vertical camera rotation when head is on ground
|
||||
// if (CameraTransform != null)
|
||||
// {
|
||||
// m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
// m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
// CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// public void Jump()
|
||||
// {
|
||||
// if (Physics.CheckSphere(GroundCheck.position, GroundCheckRadius, LayerMask.GetMask("Ground")))
|
||||
// {
|
||||
// m_rigidbody.AddForce(Vector3.up * JumpForce, ForceMode.Impulse);
|
||||
// }
|
||||
// }
|
||||
|
||||
// private void ThrowHead()
|
||||
// {
|
||||
// if (m_isHeadThrown)
|
||||
// return;
|
||||
|
||||
// animator.SetTrigger("Throw");
|
||||
|
||||
// m_isHeadThrown = true;
|
||||
|
||||
// Head.SetParent(null);
|
||||
|
||||
// m_headRigidbody = Head.gameObject.AddComponent<Rigidbody>();
|
||||
// m_headRigidbody.mass = 1f;
|
||||
|
||||
// m_headRigidbody.constraints =
|
||||
// RigidbodyConstraints.FreezeRotationX |
|
||||
// RigidbodyConstraints.FreezeRotationZ;
|
||||
|
||||
// m_headRigidbody.AddForce(CameraTransform.forward * ThrowForce, ForceMode.Impulse);
|
||||
// }
|
||||
|
||||
// private void TryPickupHead()
|
||||
// {
|
||||
// if (!m_isHeadThrown)
|
||||
// return;
|
||||
|
||||
// float distance = Vector3.Distance(transform.position, Head.position);
|
||||
|
||||
// if (distance <= PickupDistance)
|
||||
// {
|
||||
// PickupHead();
|
||||
// }
|
||||
// }
|
||||
|
||||
// private void PickupHead()
|
||||
// {
|
||||
// m_isHeadThrown = false;
|
||||
|
||||
// Remove Rigidbody
|
||||
// if (m_headRigidbody != null)
|
||||
// {
|
||||
// Destroy(m_headRigidbody);
|
||||
// }
|
||||
|
||||
// Reattach to player
|
||||
// Head.SetParent(transform);
|
||||
|
||||
// Reset position & rotation
|
||||
// Head.localPosition = m_headInitialLocalPos;
|
||||
// Head.localRotation = m_headInitialLocalRot;
|
||||
// }
|
||||
|
||||
|
||||
//}
|
||||
2
Assets/Code/Scripts/Player/test.cs.meta
Normal file
2
Assets/Code/Scripts/Player/test.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 85fce5e45a2682243a133de9ba0a4324
|
||||
8
Assets/Code/Subtitles.meta
Normal file
8
Assets/Code/Subtitles.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3952fe191e7e945b3ba35d76408a51a6
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
19
Assets/Code/Subtitles/Level01IntroSubtitles.json
Normal file
19
Assets/Code/Subtitles/Level01IntroSubtitles.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"lines": [
|
||||
{
|
||||
"speaker": "SYSTEME",
|
||||
"text": "...Ici, quelque chose cloche.",
|
||||
"duration": 2.5
|
||||
},
|
||||
{
|
||||
"speaker": "SYSTEME",
|
||||
"text": "Reste calme. Observe la piece.",
|
||||
"duration": 2.5
|
||||
},
|
||||
{
|
||||
"speaker": "SYSTEME",
|
||||
"text": "Trouve une sortie.",
|
||||
"duration": 2.2
|
||||
}
|
||||
]
|
||||
}
|
||||
7
Assets/Code/Subtitles/Level01IntroSubtitles.json.meta
Normal file
7
Assets/Code/Subtitles/Level01IntroSubtitles.json.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c4b9d13b29337441dbdb06a8a45e32c3
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -13,7 +13,6 @@ GameObject:
|
||||
- component: {fileID: 489735366413190748}
|
||||
- component: {fileID: 6101101176935368636}
|
||||
- component: {fileID: 6700426716916120764}
|
||||
- component: {fileID: 5678899781269647745}
|
||||
- component: {fileID: 7552511637356990312}
|
||||
m_Layer: 0
|
||||
m_Name: TestBlock
|
||||
@@ -335,28 +334,6 @@ MeshFilter:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2408983304096713058}
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!64 &5678899781269647745
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2408983304096713058}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 5
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!114 &7552511637356990312
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -13,8 +13,8 @@ GameObject:
|
||||
- component: {fileID: 3884605895522482221}
|
||||
- component: {fileID: 16871832050785725}
|
||||
- component: {fileID: 8512140229507148937}
|
||||
- component: {fileID: 6734862024670495346}
|
||||
- component: {fileID: 6921400718617286756}
|
||||
- component: {fileID: 7987102888823411772}
|
||||
m_Layer: 0
|
||||
m_Name: Door
|
||||
m_TagString: Untagged
|
||||
@@ -30,7 +30,7 @@ Transform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6922175388650039756}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068}
|
||||
m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: -0.82162, y: 0, z: 0.17412949}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
@@ -154,84 +154,80 @@ MonoBehaviour:
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
m_SharedVertices:
|
||||
- m_Vertices: 000000000d00000016000000
|
||||
- m_Vertices: 010000000400000017000000
|
||||
- m_Vertices: 020000000f00000010000000
|
||||
- m_Vertices: 030000000600000011000000
|
||||
- m_Vertices: 050000000800000015000000
|
||||
- m_Vertices: 070000000a00000013000000
|
||||
- m_Vertices: 090000000c00000014000000
|
||||
- m_Vertices: 0b0000000e00000012000000
|
||||
- m_Vertices: 00000000020000000d000000000000000000000000000000
|
||||
- m_Vertices: 010000000300000004000000000000000000000000000000
|
||||
- m_Vertices: 050000000700000008000000000000000000000000000000
|
||||
- m_Vertices: 090000000b0000000c000000000000000000000000000000
|
||||
m_SharedTextures: []
|
||||
m_Positions:
|
||||
- {x: -0.05, y: -1, z: 0.5}
|
||||
- {x: 0.05, y: -1, z: 0.5}
|
||||
- {x: -0.05, y: 1, z: 0.5}
|
||||
- {x: 0.05, y: 1, z: 0.5}
|
||||
- {x: 0.05, y: -1, z: 0.5}
|
||||
- {x: 0.05, y: -1, z: -0.5}
|
||||
- {x: 0.05, y: 1, z: 0.5}
|
||||
- {x: 0.05, y: 1, z: -0.5}
|
||||
- {x: 0.05, y: -1, z: -0.5}
|
||||
- {x: -0.05, y: -1, z: -0.5}
|
||||
- {x: 0.05, y: 1, z: -0.5}
|
||||
- {x: -0.05, y: 1, z: -0.5}
|
||||
- {x: -0.05, y: -1, z: -0.5}
|
||||
- {x: -0.05, y: -1, z: 0.5}
|
||||
- {x: -0.05, y: 1, z: -0.5}
|
||||
- {x: -0.05, y: 1, z: 0.5}
|
||||
- {x: -0.05, y: 1, z: 0.5}
|
||||
- {x: 0.05, y: 1, z: 0.5}
|
||||
- {x: -0.05, y: 1, z: -0.5}
|
||||
- {x: 0.05, y: 1, z: -0.5}
|
||||
- {x: -0.05, y: -1, z: -0.5}
|
||||
- {x: 0.05, y: -1, z: -0.5}
|
||||
- {x: -0.05, y: -1, z: 0.5}
|
||||
- {x: 0.05, y: -1, z: 0.5}
|
||||
- {x: -0.05, y: -4, z: 4}
|
||||
- {x: 0.05, y: -4, z: 4}
|
||||
- {x: -0.05, y: 4, z: 4}
|
||||
- {x: 0.05, y: 4, z: 4}
|
||||
- {x: 0.05, y: -4, z: 4}
|
||||
- {x: 0.05, y: -4, z: -4}
|
||||
- {x: 0.05, y: 4, z: 4}
|
||||
- {x: 0.05, y: 4, z: -4}
|
||||
- {x: 0.05, y: -4, z: -4}
|
||||
- {x: -0.05, y: -4, z: -4}
|
||||
- {x: 0.05, y: 4, z: -4}
|
||||
- {x: -0.05, y: 4, z: -4}
|
||||
- {x: -0.05, y: -4, z: -4}
|
||||
- {x: -0.05, y: -4, z: 4}
|
||||
- {x: -0.05, y: 4, z: -4}
|
||||
- {x: -0.05, y: 4, z: 4}
|
||||
- {x: -0.05, y: 4, z: 4}
|
||||
- {x: 0.05, y: 4, z: 4}
|
||||
- {x: -0.05, y: 4, z: -4}
|
||||
- {x: 0.05, y: 4, z: -4}
|
||||
- {x: -0.05, y: -4, z: -4}
|
||||
- {x: 0.05, y: -4, z: -4}
|
||||
- {x: -0.05, y: -4, z: 4}
|
||||
- {x: 0.05, y: -4, z: 4}
|
||||
m_Textures0:
|
||||
- {x: 0.1, y: -1}
|
||||
- {x: 0, y: -1}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 1, y: -1}
|
||||
- {x: 0, y: -1}
|
||||
- {x: 1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0.1, y: -1}
|
||||
- {x: 0, y: -1}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 1, y: -1}
|
||||
- {x: 0, y: -1}
|
||||
- {x: 1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0, y: -7}
|
||||
- {x: 0.1, y: -7}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 8, y: -7}
|
||||
- {x: 0, y: -7}
|
||||
- {x: 8, y: 1}
|
||||
- {x: 0, y: 0}
|
||||
- {x: 0.1, y: 0}
|
||||
- {x: 0.1, y: 0}
|
||||
- {x: 0, y: 0}
|
||||
- {x: 0.1, y: -7}
|
||||
- {x: 0, y: -7}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 8, y: -7}
|
||||
- {x: 0, y: -7}
|
||||
- {x: 8, y: 0}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: -7}
|
||||
- {x: 0.1, y: -7}
|
||||
- {x: 0.1, y: -7}
|
||||
- {x: 0, y: -7}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
m_Textures2: []
|
||||
m_Textures3: []
|
||||
m_Tangents:
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: -0, y: 1, z: 0, w: 1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
@@ -249,7 +245,7 @@ MonoBehaviour:
|
||||
m_PreserveMeshAssetOnDestroy: 0
|
||||
assetGuid:
|
||||
m_Mesh: {fileID: 0}
|
||||
m_VersionIndex: 23
|
||||
m_VersionIndex: 59
|
||||
m_IsSelectable: 1
|
||||
m_SelectedFaces:
|
||||
m_SelectedEdges: []
|
||||
@@ -269,8 +265,8 @@ MonoBehaviour:
|
||||
m_Shape:
|
||||
rid: 1325630791375913023
|
||||
m_ShapeRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_UnmodifiedMeshVersion: 23
|
||||
m_Size: {x: 0.1, y: 2, z: 1}
|
||||
m_UnmodifiedMeshVersion: 59
|
||||
m_Size: {x: 0.1, y: 8, z: 8}
|
||||
m_LocalCenter: {x: 0, y: 0, z: 0}
|
||||
references:
|
||||
version: 2
|
||||
@@ -335,8 +331,31 @@ MeshFilter:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6922175388650039756}
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!64 &6734862024670495346
|
||||
MeshCollider:
|
||||
--- !u!114 &6921400718617286756
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6922175388650039756}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cc6c36a261296f4c82e315da147ba93, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::SlidingDoor
|
||||
axis: 1
|
||||
direction: -1
|
||||
slideDistance: 10
|
||||
speed: 3
|
||||
startOpen: 0
|
||||
OnOpened:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnClosed:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!65 &7987102888823411772
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
@@ -353,30 +372,6 @@ MeshCollider:
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 5
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!114 &6921400718617286756
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6922175388650039756}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cc6c36a261296f4c82e315da147ba93, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::SlidingDoor
|
||||
axis: 1
|
||||
direction: 1
|
||||
slideDistance: 2
|
||||
speed: 3
|
||||
startOpen: 0
|
||||
OnOpened:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnClosed:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 0.1, y: 8, z: 8}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
|
||||
@@ -12,7 +12,7 @@ GameObject:
|
||||
m_Layer: 0
|
||||
m_Name: GroundCheck
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: -964228994112308473, guid: 0000000000000000d000000000000000, type: 0}
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
@@ -25,7 +25,7 @@ Transform:
|
||||
m_GameObject: {fileID: 8021212901078439068}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -0.06500006}
|
||||
m_LocalPosition: {x: 0, y: 0.004, z: -0.06500006}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
@@ -39,21 +39,85 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 7821156882341915560}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1316595833530241815, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1316595833530241815, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3733736632917204230, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3733736632917204230, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3733736632917204230, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3866203678110391311, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3866203678110391311, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4513738306462009106, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Head
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4522719369371878407, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4522719369371878407, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5926884563646191324, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5926884563646191324, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5926884563646191324, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7925603877176952742, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7925603877176952742, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8182261421342382278, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 1.235
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8182261421342382278, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0.3157
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8300425658720571131, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8300425658720571131, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
value: -0.421
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8300425658720571131, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
value: 0.475
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8300425658720571131, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
@@ -83,11 +147,41 @@ PrefabInstance:
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedComponents:
|
||||
- {fileID: 9037390549028016567, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_AddedComponents:
|
||||
- targetCorrespondingSourceObject: {fileID: 4513738306462009106, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 6096268390463610501}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
--- !u!1 &4446703388580953019 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 4513738306462009106, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
m_PrefabInstance: {fileID: 221195622690684073}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!65 &6096268390463610501
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4446703388580953019}
|
||||
m_Material: {fileID: 13400000, guid: 0e9f85473ca372a59bbff5adb28c18d2, type: 2}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 0.79742086, y: 0.5844476, z: 0.75984764}
|
||||
m_Center: {x: -0.0018145442, y: 1.2922238, z: 0.060781002}
|
||||
--- !u!4 &8079687630579216978 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8300425658720571131, guid: 8ae6d0072edd3ef6a8e8fab748ba5098, type: 3}
|
||||
@@ -151,7 +245,8 @@ PrefabInstance:
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_RemovedGameObjects:
|
||||
- {fileID: 2059550454731354505, guid: 459ef74c4ee79d3eb8e1ba6a0f06c9a7, type: 3}
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 459ef74c4ee79d3eb8e1ba6a0f06c9a7, type: 3}
|
||||
@@ -450,11 +545,11 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -4216859302048453862, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 1
|
||||
value: 1.48
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -4216859302048453862, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -3
|
||||
value: -6.57
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -4216859302048453862, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
@@ -703,6 +798,18 @@ PrefabInstance:
|
||||
- targetCorrespondingSourceObject: {fileID: -927199367670048503, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 3047743202467582630}
|
||||
- targetCorrespondingSourceObject: {fileID: -927199367670048503, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 2185157095970857719}
|
||||
- targetCorrespondingSourceObject: {fileID: -927199367670048503, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 2343678334924127783}
|
||||
- targetCorrespondingSourceObject: {fileID: -927199367670048503, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 4313489822343726709}
|
||||
- targetCorrespondingSourceObject: {fileID: -927199367670048503, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 2936940972087595065}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
|
||||
--- !u!95 &144211389547005650 stripped
|
||||
Animator:
|
||||
@@ -739,7 +846,7 @@ Rigidbody:
|
||||
m_UseGravity: 1
|
||||
m_IsKinematic: 0
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 80
|
||||
m_Constraints: 112
|
||||
m_CollisionDetection: 0
|
||||
--- !u!136 &3998354022717239476
|
||||
CapsuleCollider:
|
||||
@@ -760,10 +867,10 @@ CapsuleCollider:
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.5
|
||||
m_Height: 1.7
|
||||
m_Radius: 0.26813045
|
||||
m_Height: 1.2649516
|
||||
m_Direction: 1
|
||||
m_Center: {x: 0, y: 0.8, z: 0}
|
||||
m_Center: {x: -0.029453307, y: 0.63073164, z: 0}
|
||||
--- !u!65 &1215790106131549770
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -783,8 +890,8 @@ BoxCollider:
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 0.6, y: 0.5, z: 0.6}
|
||||
m_Center: {x: 0, y: 0.2, z: 0}
|
||||
m_Size: {x: 0.6, y: 0.4560688, z: 0.3978837}
|
||||
m_Center: {x: 0, y: 0.22196558, z: 0.101058155}
|
||||
--- !u!114 &3047743202467582630
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -797,18 +904,71 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 1d8f349ed7dc088a4a6e2690ee87094a, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerMovement
|
||||
InputActions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3}
|
||||
InputActions: {fileID: -944628639613478452, guid: b319948d6750538498f201a24c05aef3, type: 3}
|
||||
--- !u!114 &2185157095970857719
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6544026473454475707}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 6c1ddada0161b8c4783806ef6775348a, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerLook
|
||||
CameraTransform: {fileID: 8258725777112540271}
|
||||
MaxLookAngle: 90
|
||||
WalkSpeed: 5
|
||||
Head: {fileID: 8079687630579216978}
|
||||
RotateSpeed: 5
|
||||
MaxLookAngle: 90
|
||||
--- !u!114 &2343678334924127783
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6544026473454475707}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7f91586e8c2742341aa8f6925e597bf1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerMovement
|
||||
WalkSpeed: 7.5
|
||||
rotationSpeed: 10
|
||||
animator: {fileID: 144211389547005650}
|
||||
cameraTransform: {fileID: 8258725777112540271}
|
||||
--- !u!114 &4313489822343726709
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6544026473454475707}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 2da51dfecccc45b469912e3bb3f1953b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerHeadController
|
||||
Head: {fileID: 8079687630579216978}
|
||||
CameraTransform: {fileID: 8258725777112540271}
|
||||
ThrowForce: 10
|
||||
PickupDistance: 3
|
||||
isHoldingHead: 1
|
||||
--- !u!114 &2936940972087595065
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6544026473454475707}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9c524d12bc1668e42a00cbd8050107f6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::PlayerJump
|
||||
JumpForce: 5
|
||||
GroundCheck: {fileID: 5774252285975285596}
|
||||
GroundCheckRadius: 0.2
|
||||
animator: {fileID: 144211389547005650}
|
||||
Head: {fileID: 8079687630579216978}
|
||||
ThrowForce: 10
|
||||
PickupDistance: 3
|
||||
--- !u!4 &7821156882341915560 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 82a2914d8f86c62488456950c8330e38, type: 3}
|
||||
|
||||
8
Assets/Level/Prefabs/World.meta
Normal file
8
Assets/Level/Prefabs/World.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f58da68f9b7cd4f1489b7b0e17c841dc
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
640
Assets/Level/Prefabs/World/TileDoorFrame.prefab
Normal file
640
Assets/Level/Prefabs/World/TileDoorFrame.prefab
Normal file
@@ -0,0 +1,640 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &7358282048986567246
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 7620239766451692460, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
m_PrefabInstance: {fileID: 6073171541110751723}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6730954181803855235}
|
||||
- component: {fileID: 412118018221697532}
|
||||
- component: {fileID: 7340938401879862527}
|
||||
- component: {fileID: 7383390462390725690}
|
||||
- component: {fileID: 6002584575896669468}
|
||||
- component: {fileID: 4193616611914722518}
|
||||
m_Layer: 0
|
||||
m_Name: TileDoorFrame
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6730954181803855235
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 5959526825738353761, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
m_PrefabInstance: {fileID: 6073171541110751723}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7358282048986567246}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: -15.4, y: 5, z: -20.000002}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
|
||||
--- !u!114 &412118018221697532
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 749139187830528030, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
m_PrefabInstance: {fileID: 6073171541110751723}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7358282048986567246}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.ProBuilder::UnityEngine.ProBuilder.ProBuilderMesh
|
||||
m_MeshFormatVersion: 2
|
||||
m_Faces:
|
||||
- m_Indexes: 000000000100000002000000010000000300000002000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 040000000500000006000000050000000700000006000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 08000000090000000a000000090000000b0000000a000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 0c0000000d0000000e0000000d0000000f0000000e000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 100000001100000012000000110000001300000012000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 140000001500000016000000150000001700000016000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 18000000190000001a000000190000001b0000001a000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 1c0000001d0000001e0000001d0000001f0000001e000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 200000002100000022000000210000002300000022000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 240000002500000026000000250000002700000026000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 28000000290000002a000000290000002b0000002a000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 2c0000002d0000002e0000002d0000002f0000002e000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 300000003100000032000000310000003300000032000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
m_SharedVertices:
|
||||
- m_Vertices: 0000000008000000
|
||||
- m_Vertices: 01000000
|
||||
- m_Vertices: 0200000009000000100000002900000032000000
|
||||
- m_Vertices: 0300000030000000
|
||||
- m_Vertices: 040000002d000000
|
||||
- m_Vertices: 05000000
|
||||
- m_Vertices: 060000000d00000011000000280000002f000000
|
||||
- m_Vertices: 070000000f000000
|
||||
- m_Vertices: 0a000000
|
||||
- m_Vertices: 0b00000012000000
|
||||
- m_Vertices: 0c00000013000000
|
||||
- m_Vertices: 0e000000
|
||||
- m_Vertices: 140000001c000000
|
||||
- m_Vertices: 150000001e000000240000002b00000033000000
|
||||
- m_Vertices: 16000000
|
||||
- m_Vertices: 1700000031000000
|
||||
- m_Vertices: 180000002c000000
|
||||
- m_Vertices: 1900000022000000260000002a0000002e000000
|
||||
- m_Vertices: 1a000000
|
||||
- m_Vertices: 1b00000023000000
|
||||
- m_Vertices: 1d000000
|
||||
- m_Vertices: 1f00000025000000
|
||||
- m_Vertices: 2000000027000000
|
||||
- m_Vertices: 21000000
|
||||
m_SharedTextures: []
|
||||
m_Positions:
|
||||
- {x: -5, y: 3, z: 0.05}
|
||||
- {x: -5, y: -5, z: 0.05}
|
||||
- {x: -3, y: 3, z: 0.05}
|
||||
- {x: -3, y: -5, z: 0.05}
|
||||
- {x: 3, y: -5, z: 0.05}
|
||||
- {x: 5, y: -5, z: 0.05}
|
||||
- {x: 3, y: 3, z: 0.05}
|
||||
- {x: 5, y: 3, z: 0.05}
|
||||
- {x: -5, y: 3, z: 0.05}
|
||||
- {x: -3, y: 3, z: 0.05}
|
||||
- {x: -5, y: 5, z: 0.05}
|
||||
- {x: -3, y: 5, z: 0.05}
|
||||
- {x: 3, y: 5, z: 0.05}
|
||||
- {x: 3, y: 3, z: 0.05}
|
||||
- {x: 5, y: 5, z: 0.05}
|
||||
- {x: 5, y: 3, z: 0.05}
|
||||
- {x: -3, y: 3, z: 0.05}
|
||||
- {x: 3, y: 3, z: 0.05}
|
||||
- {x: -3, y: 5, z: 0.05}
|
||||
- {x: 3, y: 5, z: 0.05}
|
||||
- {x: -5, y: 3, z: -0.05}
|
||||
- {x: -3, y: 3, z: -0.05}
|
||||
- {x: -5, y: -5, z: -0.05}
|
||||
- {x: -3, y: -5, z: -0.05}
|
||||
- {x: 3, y: -5, z: -0.05}
|
||||
- {x: 3, y: 3, z: -0.05}
|
||||
- {x: 5, y: -5, z: -0.05}
|
||||
- {x: 5, y: 3, z: -0.05}
|
||||
- {x: -5, y: 3, z: -0.05}
|
||||
- {x: -5, y: 5, z: -0.05}
|
||||
- {x: -3, y: 3, z: -0.05}
|
||||
- {x: -3, y: 5, z: -0.05}
|
||||
- {x: 3, y: 5, z: -0.05}
|
||||
- {x: 5, y: 5, z: -0.05}
|
||||
- {x: 3, y: 3, z: -0.05}
|
||||
- {x: 5, y: 3, z: -0.05}
|
||||
- {x: -3, y: 3, z: -0.05}
|
||||
- {x: -3, y: 5, z: -0.05}
|
||||
- {x: 3, y: 3, z: -0.05}
|
||||
- {x: 3, y: 5, z: -0.05}
|
||||
- {x: 3, y: 3, z: 0.05}
|
||||
- {x: -3, y: 3, z: 0.05}
|
||||
- {x: 3, y: 3, z: -0.05}
|
||||
- {x: -3, y: 3, z: -0.05}
|
||||
- {x: 3, y: -5, z: -0.05}
|
||||
- {x: 3, y: -5, z: 0.05}
|
||||
- {x: 3, y: 3, z: -0.05}
|
||||
- {x: 3, y: 3, z: 0.05}
|
||||
- {x: -3, y: -5, z: 0.05}
|
||||
- {x: -3, y: -5, z: -0.05}
|
||||
- {x: -3, y: 3, z: 0.05}
|
||||
- {x: -3, y: 3, z: -0.05}
|
||||
m_Textures0:
|
||||
- {x: 5, y: 3}
|
||||
- {x: 5, y: -5}
|
||||
- {x: 3, y: 3}
|
||||
- {x: 3, y: -5}
|
||||
- {x: -3, y: -5}
|
||||
- {x: -5, y: -5}
|
||||
- {x: -3, y: 3}
|
||||
- {x: -5, y: 3}
|
||||
- {x: 5, y: 3}
|
||||
- {x: 3, y: 3}
|
||||
- {x: 5, y: 5}
|
||||
- {x: 3, y: 5}
|
||||
- {x: -3, y: 5}
|
||||
- {x: -3, y: 3}
|
||||
- {x: -5, y: 5}
|
||||
- {x: -5, y: 3}
|
||||
- {x: 3, y: 3}
|
||||
- {x: -3, y: 3}
|
||||
- {x: 3, y: 5}
|
||||
- {x: -3, y: 5}
|
||||
- {x: -5, y: 3}
|
||||
- {x: -3, y: 3}
|
||||
- {x: -5, y: -5}
|
||||
- {x: -3, y: -5}
|
||||
- {x: 3, y: -5}
|
||||
- {x: 3, y: 3}
|
||||
- {x: 5, y: -5}
|
||||
- {x: 5, y: 3}
|
||||
- {x: -5, y: 3}
|
||||
- {x: -5, y: 5}
|
||||
- {x: -3, y: 3}
|
||||
- {x: -3, y: 5}
|
||||
- {x: 3, y: 5}
|
||||
- {x: 5, y: 5}
|
||||
- {x: 3, y: 3}
|
||||
- {x: 5, y: 3}
|
||||
- {x: -3, y: 3}
|
||||
- {x: -3, y: 5}
|
||||
- {x: 3, y: 3}
|
||||
- {x: 3, y: 5}
|
||||
- {x: -3, y: 0.05}
|
||||
- {x: 3, y: 0.05}
|
||||
- {x: -3, y: -0.05}
|
||||
- {x: 3, y: -0.05}
|
||||
- {x: 0.05, y: -5}
|
||||
- {x: -0.05, y: -5}
|
||||
- {x: 0.05, y: 3}
|
||||
- {x: -0.05, y: 3}
|
||||
- {x: 0.05, y: -5}
|
||||
- {x: -0.05, y: -5}
|
||||
- {x: 0.05, y: 3}
|
||||
- {x: -0.05, y: 3}
|
||||
m_Textures2: []
|
||||
m_Textures3: []
|
||||
m_Tangents:
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
m_Colors: []
|
||||
m_UnwrapParameters:
|
||||
m_HardAngle: 88
|
||||
m_PackMargin: 20
|
||||
m_AngleError: 8
|
||||
m_AreaError: 15
|
||||
m_PreserveMeshAssetOnDestroy: 0
|
||||
assetGuid:
|
||||
m_Mesh: {fileID: 0}
|
||||
m_VersionIndex: 30
|
||||
m_IsSelectable: 1
|
||||
m_SelectedFaces:
|
||||
m_SelectedEdges: []
|
||||
m_SelectedVertices:
|
||||
--- !u!114 &7340938401879862527
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 7655303172860173597, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
m_PrefabInstance: {fileID: 6073171541110751723}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7358282048986567246}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1ca002da428252441b92f28d83c8a65f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.ProBuilder::UnityEngine.ProBuilder.Shapes.ProBuilderShape
|
||||
m_Shape:
|
||||
rid: 1398870395349368919
|
||||
m_ShapeRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_UnmodifiedMeshVersion: 21
|
||||
m_Size: {x: 10, y: 10, z: 0.1}
|
||||
m_LocalCenter: {x: 0, y: 0, z: 0}
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 1398870395349368919
|
||||
type: {class: Door, ns: UnityEngine.ProBuilder.Shapes, asm: Unity.ProBuilder}
|
||||
data:
|
||||
m_DoorHeight: 2
|
||||
m_LegWidth: 2
|
||||
--- !u!23 &7383390462390725690
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 7613981380323352024, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
m_PrefabInstance: {fileID: 6073171541110751723}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7358282048986567246}
|
||||
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: d6cbb9d7d974ade448bd811a9cec399d, 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 &6002584575896669468
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 6669883714582723838, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
m_PrefabInstance: {fileID: 6073171541110751723}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7358282048986567246}
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!64 &4193616611914722518
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 3886572594434432308, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
m_PrefabInstance: {fileID: 6073171541110751723}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7358282048986567246}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 5
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!1001 &6073171541110751723
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 749139187830528030, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_VersionIndex
|
||||
value: 27
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5959526825738353761, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -15.4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5959526825738353761, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5959526825738353761, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -20.000002
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5959526825738353761, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0.7071068
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5959526825738353761, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5959526825738353761, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0.7071068
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5959526825738353761, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5959526825738353761, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5959526825738353761, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 90
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5959526825738353761, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7620239766451692460, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: TileDoorFrame
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: e0e33d133c87d49df82c73bbf194cba7, type: 3}
|
||||
7
Assets/Level/Prefabs/World/TileDoorFrame.prefab.meta
Normal file
7
Assets/Level/Prefabs/World/TileDoorFrame.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5f58ef95766204095a310e56ba6b80ca
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
357
Assets/Level/Prefabs/World/TileFloor.prefab
Normal file
357
Assets/Level/Prefabs/World/TileFloor.prefab
Normal file
@@ -0,0 +1,357 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &5840335221072158843
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 495342671324507826}
|
||||
- component: {fileID: 5158937175993662519}
|
||||
- component: {fileID: 4175848428221556727}
|
||||
- component: {fileID: 6830455346839416856}
|
||||
- component: {fileID: 9192243752437355431}
|
||||
- component: {fileID: 1753047251571399430}
|
||||
m_Layer: 3
|
||||
m_Name: TileFloor
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &495342671324507826
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5840335221072158843}
|
||||
serializedVersion: 2
|
||||
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: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &5158937175993662519
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5840335221072158843}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.ProBuilder::UnityEngine.ProBuilder.ProBuilderMesh
|
||||
m_MeshFormatVersion: 2
|
||||
m_Faces:
|
||||
- m_Indexes: 000000000100000002000000010000000300000002000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 040000000500000006000000050000000700000006000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 08000000090000000a000000090000000b0000000a000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 0c0000000d0000000e0000000d0000000f0000000e000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 100000001100000012000000110000001300000012000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 140000001500000016000000150000001700000016000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
m_SharedVertices:
|
||||
- m_Vertices: 000000000d00000016000000
|
||||
- m_Vertices: 010000000400000017000000
|
||||
- m_Vertices: 020000000f00000010000000
|
||||
- m_Vertices: 030000000600000011000000
|
||||
- m_Vertices: 050000000800000015000000
|
||||
- m_Vertices: 070000000a00000013000000
|
||||
- m_Vertices: 090000000c00000014000000
|
||||
- m_Vertices: 0b0000000e00000012000000
|
||||
m_SharedTextures: []
|
||||
m_Positions:
|
||||
- {x: -25, y: -0.05, z: 30}
|
||||
- {x: 25, y: -0.05, z: 30}
|
||||
- {x: -25, y: 0.05, z: 30}
|
||||
- {x: 25, y: 0.05, z: 30}
|
||||
- {x: 25, y: -0.05, z: 30}
|
||||
- {x: 25, y: -0.05, z: -30}
|
||||
- {x: 25, y: 0.05, z: 30}
|
||||
- {x: 25, y: 0.05, z: -30}
|
||||
- {x: 25, y: -0.05, z: -30}
|
||||
- {x: -25, y: -0.05, z: -30}
|
||||
- {x: 25, y: 0.05, z: -30}
|
||||
- {x: -25, y: 0.05, z: -30}
|
||||
- {x: -25, y: -0.05, z: -30}
|
||||
- {x: -25, y: -0.05, z: 30}
|
||||
- {x: -25, y: 0.05, z: -30}
|
||||
- {x: -25, y: 0.05, z: 30}
|
||||
- {x: -25, y: 0.05, z: 30}
|
||||
- {x: 25, y: 0.05, z: 30}
|
||||
- {x: -25, y: 0.05, z: -30}
|
||||
- {x: 25, y: 0.05, z: -30}
|
||||
- {x: -25, y: -0.05, z: -30}
|
||||
- {x: 25, y: -0.05, z: -30}
|
||||
- {x: -25, y: -0.05, z: 30}
|
||||
- {x: 25, y: -0.05, z: 30}
|
||||
m_Textures0:
|
||||
- {x: 50, y: 0.9}
|
||||
- {x: 0, y: 0.9}
|
||||
- {x: 50, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 60, y: 0.9}
|
||||
- {x: 0, y: 0.9}
|
||||
- {x: 60, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 50, y: 0.9}
|
||||
- {x: 0, y: 0.9}
|
||||
- {x: 50, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 60, y: 0.9}
|
||||
- {x: 0, y: 0.9}
|
||||
- {x: 60, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 50, y: 1}
|
||||
- {x: 0, y: -59}
|
||||
- {x: 50, y: -59}
|
||||
- {x: 50, y: -59}
|
||||
- {x: 0, y: -59}
|
||||
- {x: 50, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
m_Textures2: []
|
||||
m_Textures3: []
|
||||
m_Tangents:
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
m_Colors: []
|
||||
m_UnwrapParameters:
|
||||
m_HardAngle: 88
|
||||
m_PackMargin: 20
|
||||
m_AngleError: 8
|
||||
m_AreaError: 15
|
||||
m_PreserveMeshAssetOnDestroy: 0
|
||||
assetGuid:
|
||||
m_Mesh: {fileID: 0}
|
||||
m_VersionIndex: 147
|
||||
m_IsSelectable: 1
|
||||
m_SelectedFaces:
|
||||
m_SelectedEdges: []
|
||||
m_SelectedVertices:
|
||||
--- !u!114 &4175848428221556727
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5840335221072158843}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1ca002da428252441b92f28d83c8a65f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.ProBuilder::UnityEngine.ProBuilder.Shapes.ProBuilderShape
|
||||
m_Shape:
|
||||
rid: 1398870395349368895
|
||||
m_ShapeRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_UnmodifiedMeshVersion: 147
|
||||
m_Size: {x: 50, y: 0.1, z: 60}
|
||||
m_LocalCenter: {x: 0, y: 0, z: 0}
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 1398870395349368895
|
||||
type: {class: Cube, ns: UnityEngine.ProBuilder.Shapes, asm: Unity.ProBuilder}
|
||||
data:
|
||||
--- !u!23 &6830455346839416856
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5840335221072158843}
|
||||
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: a7ae6b34c1352bd419c92ad25692fcb1, 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 &9192243752437355431
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5840335221072158843}
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!65 &1753047251571399430
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5840335221072158843}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 10, y: 0.1, z: 10}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
7
Assets/Level/Prefabs/World/TileFloor.prefab.meta
Normal file
7
Assets/Level/Prefabs/World/TileFloor.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c473a12ab25142ec90b284ea34213f2
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
357
Assets/Level/Prefabs/World/TileGlass.prefab
Normal file
357
Assets/Level/Prefabs/World/TileGlass.prefab
Normal file
@@ -0,0 +1,357 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &7423121966632867460
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5676916603420269486}
|
||||
- component: {fileID: 8715567582214355493}
|
||||
- component: {fileID: 8404390266503327226}
|
||||
- component: {fileID: 2553083886184869086}
|
||||
- component: {fileID: 7112311031510233378}
|
||||
- component: {fileID: 8869586897791223017}
|
||||
m_Layer: 0
|
||||
m_Name: TileGlass
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5676916603420269486
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7423121966632867460}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: -20.03938, y: 5, z: -15.141106}
|
||||
m_LocalScale: {x: 1, y: 1, z: 0.5}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
|
||||
--- !u!114 &8715567582214355493
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7423121966632867460}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.ProBuilder::UnityEngine.ProBuilder.ProBuilderMesh
|
||||
m_MeshFormatVersion: 2
|
||||
m_Faces:
|
||||
- m_Indexes: 000000000100000002000000010000000300000002000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 040000000500000006000000050000000700000006000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 08000000090000000a000000090000000b0000000a000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 0c0000000d0000000e0000000d0000000f0000000e000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 100000001100000012000000110000001300000012000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 140000001500000016000000150000001700000016000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
m_SharedVertices:
|
||||
- m_Vertices: 000000000d00000016000000
|
||||
- m_Vertices: 010000000400000017000000
|
||||
- m_Vertices: 020000000f00000010000000
|
||||
- m_Vertices: 030000000600000011000000
|
||||
- m_Vertices: 050000000800000015000000
|
||||
- m_Vertices: 070000000a00000013000000
|
||||
- m_Vertices: 090000000c00000014000000
|
||||
- m_Vertices: 0b0000000e00000012000000
|
||||
m_SharedTextures: []
|
||||
m_Positions:
|
||||
- {x: -0.05, y: -5, z: 5}
|
||||
- {x: 0.05, y: -5, z: 5}
|
||||
- {x: -0.05, y: 5, z: 5}
|
||||
- {x: 0.05, y: 5, z: 5}
|
||||
- {x: 0.05, y: -5, z: 5}
|
||||
- {x: 0.05, y: -5, z: -5}
|
||||
- {x: 0.05, y: 5, z: 5}
|
||||
- {x: 0.05, y: 5, z: -5}
|
||||
- {x: 0.05, y: -5, z: -5}
|
||||
- {x: -0.05, y: -5, z: -5}
|
||||
- {x: 0.05, y: 5, z: -5}
|
||||
- {x: -0.05, y: 5, z: -5}
|
||||
- {x: -0.05, y: -5, z: -5}
|
||||
- {x: -0.05, y: -5, z: 5}
|
||||
- {x: -0.05, y: 5, z: -5}
|
||||
- {x: -0.05, y: 5, z: 5}
|
||||
- {x: -0.05, y: 5, z: 5}
|
||||
- {x: 0.05, y: 5, z: 5}
|
||||
- {x: -0.05, y: 5, z: -5}
|
||||
- {x: 0.05, y: 5, z: -5}
|
||||
- {x: -0.05, y: -5, z: -5}
|
||||
- {x: 0.05, y: -5, z: -5}
|
||||
- {x: -0.05, y: -5, z: 5}
|
||||
- {x: 0.05, y: -5, z: 5}
|
||||
m_Textures0:
|
||||
- {x: 0.1, y: -9}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 10, y: -9}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 10, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0.1, y: -9}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 10, y: -9}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 10, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 0.1, y: -9}
|
||||
- {x: 0.1, y: -9}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
m_Textures2: []
|
||||
m_Textures3: []
|
||||
m_Tangents:
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
m_Colors: []
|
||||
m_UnwrapParameters:
|
||||
m_HardAngle: 88
|
||||
m_PackMargin: 20
|
||||
m_AngleError: 8
|
||||
m_AreaError: 15
|
||||
m_PreserveMeshAssetOnDestroy: 0
|
||||
assetGuid:
|
||||
m_Mesh: {fileID: 0}
|
||||
m_VersionIndex: 26
|
||||
m_IsSelectable: 1
|
||||
m_SelectedFaces:
|
||||
m_SelectedEdges: []
|
||||
m_SelectedVertices:
|
||||
--- !u!114 &8404390266503327226
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7423121966632867460}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1ca002da428252441b92f28d83c8a65f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.ProBuilder::UnityEngine.ProBuilder.Shapes.ProBuilderShape
|
||||
m_Shape:
|
||||
rid: 1398870395349368904
|
||||
m_ShapeRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_UnmodifiedMeshVersion: 23
|
||||
m_Size: {x: 0.1, y: 10, z: 10}
|
||||
m_LocalCenter: {x: 0, y: 0, z: 0}
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 1398870395349368904
|
||||
type: {class: Cube, ns: UnityEngine.ProBuilder.Shapes, asm: Unity.ProBuilder}
|
||||
data:
|
||||
--- !u!23 &2553083886184869086
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7423121966632867460}
|
||||
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: e2ff028127aed49898d5db254c679ffa, 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 &7112311031510233378
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7423121966632867460}
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!65 &8869586897791223017
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7423121966632867460}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 0.100000024, y: 10, z: 10.000002}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
7
Assets/Level/Prefabs/World/TileGlass.prefab.meta
Normal file
7
Assets/Level/Prefabs/World/TileGlass.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2d24a72aa97834b4a9baff9020719d61
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
357
Assets/Level/Prefabs/World/TileWall.prefab
Normal file
357
Assets/Level/Prefabs/World/TileWall.prefab
Normal file
@@ -0,0 +1,357 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2843516741972607348
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4751072299030562733}
|
||||
- component: {fileID: 8868111042538970869}
|
||||
- component: {fileID: 4579864586410663392}
|
||||
- component: {fileID: 8458375974803422925}
|
||||
- component: {fileID: 3605484921720718291}
|
||||
- component: {fileID: 8463408000742725404}
|
||||
m_Layer: 0
|
||||
m_Name: TileWall
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4751072299030562733
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2843516741972607348}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -15, y: 5, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &8868111042538970869
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2843516741972607348}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.ProBuilder::UnityEngine.ProBuilder.ProBuilderMesh
|
||||
m_MeshFormatVersion: 2
|
||||
m_Faces:
|
||||
- m_Indexes: 000000000100000002000000010000000300000002000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 040000000500000006000000050000000700000006000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 08000000090000000a000000090000000b0000000a000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 0c0000000d0000000e0000000d0000000f0000000e000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 100000001100000012000000110000001300000012000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 140000001500000016000000150000001700000016000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 0
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
m_SharedVertices:
|
||||
- m_Vertices: 000000000d00000016000000
|
||||
- m_Vertices: 010000000400000017000000
|
||||
- m_Vertices: 020000000f00000010000000
|
||||
- m_Vertices: 030000000600000011000000
|
||||
- m_Vertices: 050000000800000015000000
|
||||
- m_Vertices: 070000000a00000013000000
|
||||
- m_Vertices: 090000000c00000014000000
|
||||
- m_Vertices: 0b0000000e00000012000000
|
||||
m_SharedTextures: []
|
||||
m_Positions:
|
||||
- {x: -0.05, y: -5, z: 5}
|
||||
- {x: 0.05, y: -5, z: 5}
|
||||
- {x: -0.05, y: 5, z: 5}
|
||||
- {x: 0.05, y: 5, z: 5}
|
||||
- {x: 0.05, y: -5, z: 5}
|
||||
- {x: 0.05, y: -5, z: -5}
|
||||
- {x: 0.05, y: 5, z: 5}
|
||||
- {x: 0.05, y: 5, z: -5}
|
||||
- {x: 0.05, y: -5, z: -5}
|
||||
- {x: -0.05, y: -5, z: -5}
|
||||
- {x: 0.05, y: 5, z: -5}
|
||||
- {x: -0.05, y: 5, z: -5}
|
||||
- {x: -0.05, y: -5, z: -5}
|
||||
- {x: -0.05, y: -5, z: 5}
|
||||
- {x: -0.05, y: 5, z: -5}
|
||||
- {x: -0.05, y: 5, z: 5}
|
||||
- {x: -0.05, y: 5, z: 5}
|
||||
- {x: 0.05, y: 5, z: 5}
|
||||
- {x: -0.05, y: 5, z: -5}
|
||||
- {x: 0.05, y: 5, z: -5}
|
||||
- {x: -0.05, y: -5, z: -5}
|
||||
- {x: 0.05, y: -5, z: -5}
|
||||
- {x: -0.05, y: -5, z: 5}
|
||||
- {x: 0.05, y: -5, z: 5}
|
||||
m_Textures0:
|
||||
- {x: 0.1, y: -9}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 10, y: -9}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 10, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0.1, y: -9}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 10, y: -9}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 10, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 0.1, y: -9}
|
||||
- {x: 0.1, y: -9}
|
||||
- {x: 0, y: -9}
|
||||
- {x: 0.1, y: 1}
|
||||
- {x: 0, y: 1}
|
||||
m_Textures2: []
|
||||
m_Textures3: []
|
||||
m_Tangents:
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
m_Colors: []
|
||||
m_UnwrapParameters:
|
||||
m_HardAngle: 88
|
||||
m_PackMargin: 20
|
||||
m_AngleError: 8
|
||||
m_AreaError: 15
|
||||
m_PreserveMeshAssetOnDestroy: 0
|
||||
assetGuid:
|
||||
m_Mesh: {fileID: 0}
|
||||
m_VersionIndex: 26
|
||||
m_IsSelectable: 1
|
||||
m_SelectedFaces:
|
||||
m_SelectedEdges: []
|
||||
m_SelectedVertices:
|
||||
--- !u!114 &4579864586410663392
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2843516741972607348}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1ca002da428252441b92f28d83c8a65f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.ProBuilder::UnityEngine.ProBuilder.Shapes.ProBuilderShape
|
||||
m_Shape:
|
||||
rid: 1398870395349368900
|
||||
m_ShapeRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_UnmodifiedMeshVersion: 23
|
||||
m_Size: {x: 0.1, y: 10, z: 10}
|
||||
m_LocalCenter: {x: 0, y: 0, z: 0}
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 1398870395349368900
|
||||
type: {class: Cube, ns: UnityEngine.ProBuilder.Shapes, asm: Unity.ProBuilder}
|
||||
data:
|
||||
--- !u!23 &8458375974803422925
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2843516741972607348}
|
||||
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: d6cbb9d7d974ade448bd811a9cec399d, 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 &3605484921720718291
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2843516741972607348}
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!65 &8463408000742725404
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2843516741972607348}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 0.1, y: 10, z: 10}
|
||||
m_Center: {x: 0, y: 0.00000047683716, z: -0.00000059604645}
|
||||
7
Assets/Level/Prefabs/World/TileWall.prefab.meta
Normal file
7
Assets/Level/Prefabs/World/TileWall.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4175a5602e4244d988c11bca2debea28
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because one or more lines are too long
8
Assets/Level/Scenes/Level.meta
Normal file
8
Assets/Level/Scenes/Level.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 17d8e143bab382c4ca8c4e33dee4bb41
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Level/Scenes/Level/01.meta
Normal file
8
Assets/Level/Scenes/Level/01.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ae8418939e8b8544591bb64fbe136fb3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
428
Assets/Level/Scenes/Level/01/Level01_Final.unity
Normal file
428
Assets/Level/Scenes/Level/01/Level01_Final.unity
Normal file
@@ -0,0 +1,428 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 10
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 13
|
||||
m_BakeOnSceneLoad: 0
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 2
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 1
|
||||
m_PVRFilteringGaussRadiusAO: 1
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_LightingSettings: {fileID: 0}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1001 &146034592
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: -8679921383154817045, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 8.9335
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -16.64573
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 919132149155446097, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Level
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents:
|
||||
- targetCorrespondingSourceObject: {fileID: -3121380241203253555, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 146034594}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
--- !u!1 &146034593 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: -3121380241203253555, guid: cdecbcd15c5a18b409d15603630bb654, type: 3}
|
||||
m_PrefabInstance: {fileID: 146034592}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &146034594
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 146034593}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cc6c36a261296f4c82e315da147ba93, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::SlidingDoor
|
||||
axis: 1
|
||||
direction: -1
|
||||
slideDistance: 2
|
||||
speed: 3
|
||||
startOpen: 0
|
||||
OnOpened:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
OnClosed:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1001 &1044583204
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 6544026473454475707, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Player
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -33.61331
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.0000022767708
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -20.720806
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0.7071068
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0.7071068
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 90
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8079687630579216978, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 0.8
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8079687630579216978, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 0.8
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9113767139962055966, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Radius
|
||||
value: 0.4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9113767139962055966, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Center.y
|
||||
value: 1.3
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
--- !u!1 &1168512180
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1168512182}
|
||||
- component: {fileID: 1168512181}
|
||||
- component: {fileID: 1168512183}
|
||||
m_Layer: 0
|
||||
m_Name: Directional Light
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!108 &1168512181
|
||||
Light:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1168512180}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 12
|
||||
m_Type: 1
|
||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
|
||||
m_Intensity: 1
|
||||
m_Range: 10
|
||||
m_SpotAngle: 30
|
||||
m_InnerSpotAngle: 21.80208
|
||||
m_CookieSize2D: {x: 0.5, y: 0.5}
|
||||
m_Shadows:
|
||||
m_Type: 2
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
m_NearPlane: 0.2
|
||||
m_CullingMatrixOverride:
|
||||
e00: 1
|
||||
e01: 0
|
||||
e02: 0
|
||||
e03: 0
|
||||
e10: 0
|
||||
e11: 1
|
||||
e12: 0
|
||||
e13: 0
|
||||
e20: 0
|
||||
e21: 0
|
||||
e22: 1
|
||||
e23: 0
|
||||
e30: 0
|
||||
e31: 0
|
||||
e32: 0
|
||||
e33: 1
|
||||
m_UseCullingMatrixOverride: 0
|
||||
m_Cookie: {fileID: 0}
|
||||
m_DrawHalo: 0
|
||||
m_Flare: {fileID: 0}
|
||||
m_RenderMode: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingLayerMask: 1
|
||||
m_Lightmapping: 4
|
||||
m_LightShadowCasterMode: 0
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ColorTemperature: 6570
|
||||
m_UseColorTemperature: 0
|
||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_UseBoundingSphereOverride: 0
|
||||
m_UseViewFrustumForShadowCasterCull: 1
|
||||
m_ForceVisible: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
m_LightUnit: 1
|
||||
m_LuxAtDistance: 1
|
||||
m_EnableSpotReflector: 1
|
||||
--- !u!4 &1168512182
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1168512180}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
||||
--- !u!114 &1168512183
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1168512180}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData
|
||||
m_UsePipelineSettings: 1
|
||||
m_AdditionalLightsShadowResolutionTier: 2
|
||||
m_CustomShadowLayers: 0
|
||||
m_LightCookieSize: {x: 1, y: 1}
|
||||
m_LightCookieOffset: {x: 0, y: 0}
|
||||
m_SoftShadowQuality: 0
|
||||
m_RenderingLayersMask:
|
||||
serializedVersion: 0
|
||||
m_Bits: 1
|
||||
m_ShadowRenderingLayersMask:
|
||||
serializedVersion: 0
|
||||
m_Bits: 1
|
||||
m_Version: 4
|
||||
m_LightLayerMask: 1
|
||||
m_ShadowLayerMask: 1
|
||||
m_RenderingLayers: 1
|
||||
m_ShadowRenderingLayers: 1
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 1168512182}
|
||||
- {fileID: 1044583204}
|
||||
- {fileID: 146034592}
|
||||
7
Assets/Level/Scenes/Level/01/Level01_Final.unity.meta
Normal file
7
Assets/Level/Scenes/Level/01/Level01_Final.unity.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c27b10b5ca850594298ef98e0486babd
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
12487
Assets/Level/Scenes/Level/01/Level01_Work.unity
Normal file
12487
Assets/Level/Scenes/Level/01/Level01_Work.unity
Normal file
File diff suppressed because one or more lines are too long
7
Assets/Level/Scenes/Level/01/Level01_Work.unity.meta
Normal file
7
Assets/Level/Scenes/Level/01/Level01_Work.unity.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 002c7c1365eb84470a077e39ac50a31c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -246,6 +246,11 @@ MonoBehaviour:
|
||||
m_ShadowLayerMask: 1
|
||||
m_RenderingLayers: 1
|
||||
m_ShadowRenderingLayers: 1
|
||||
--- !u!4 &573532104 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8258725777112540271, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
m_PrefabInstance: {fileID: 762024470}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &762024470
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -254,10 +259,38 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 3047743202467582630, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: InputActions
|
||||
- target: {fileID: 2343678334924127783, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: animator
|
||||
value:
|
||||
objectReference: {fileID: -944628639613478452, guid: b319948d6750538498f201a24c05aef3, type: 3}
|
||||
objectReference: {fileID: 2044346512}
|
||||
- target: {fileID: 2343678334924127783, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: cameraTransform
|
||||
value:
|
||||
objectReference: {fileID: 573532104}
|
||||
- target: {fileID: 3702287221525863218, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Constraints
|
||||
value: 112
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4313489822343726709, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: isHoldingHead
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6096268390463610501, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Size.y
|
||||
value: 0.5844476
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6096268390463610501, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Size.z
|
||||
value: 0.75984764
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6096268390463610501, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Center.y
|
||||
value: 1.2922238
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6096268390463610501, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Center.z
|
||||
value: 0.060781002
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6544026473454475707, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Player
|
||||
@@ -302,8 +335,13 @@ PrefabInstance:
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8258725777112540271, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0.3157
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_RemovedGameObjects:
|
||||
- {fileID: 472912051752212496, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
@@ -575,12 +613,17 @@ Transform:
|
||||
m_GameObject: {fileID: 1430443543}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.3763, y: 3.05, z: 10}
|
||||
m_LocalPosition: {x: 0.3763, y: 0, z: 4.34}
|
||||
m_LocalScale: {x: 12.810944, y: 5.8166175, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!95 &2044346512 stripped
|
||||
Animator:
|
||||
m_CorrespondingSourceObject: {fileID: 144211389547005650, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
m_PrefabInstance: {fileID: 762024470}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f7ddf8204ae4327bb84e928c9ae561d4
|
||||
guid: f5c0ebee25ced1d42b0312b27d0aad54
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 13400000
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!134 &13400000
|
||||
PhysicsMaterial:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: No_Friction
|
||||
serializedVersion: 2
|
||||
m_DynamicFriction: 0
|
||||
m_StaticFriction: 0
|
||||
m_Bounciness: 0
|
||||
m_FrictionCombine: 0
|
||||
m_BounceCombine: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7c0881b5a8885c9f0a5954bd7ca490b4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 13400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/_Recovery.meta
Normal file
8
Assets/_Recovery.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eac7d60bc6ab8b4418e2bd8ff27ded01
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
713
Assets/_Recovery/0.unity
Normal file
713
Assets/_Recovery/0.unity
Normal file
@@ -0,0 +1,713 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 10
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 13
|
||||
m_BakeOnSceneLoad: 0
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_LightingSettings: {fileID: 0}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &94026883
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 94026887}
|
||||
- component: {fileID: 94026886}
|
||||
- component: {fileID: 94026885}
|
||||
- component: {fileID: 94026884}
|
||||
m_Layer: 0
|
||||
m_Name: Cube (1)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!65 &94026884
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 94026883}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
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 &94026885
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 94026883}
|
||||
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 &94026886
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 94026883}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &94026887
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 94026883}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.3763, y: -2.27, z: -0.22}
|
||||
m_LocalScale: {x: 1.2236117, y: 5.8166175, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &410087039
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 410087041}
|
||||
- component: {fileID: 410087040}
|
||||
- component: {fileID: 410087042}
|
||||
m_Layer: 0
|
||||
m_Name: Directional Light
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!108 &410087040
|
||||
Light:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 410087039}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 12
|
||||
m_Type: 1
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_Intensity: 2
|
||||
m_Range: 10
|
||||
m_SpotAngle: 30
|
||||
m_InnerSpotAngle: 21.80208
|
||||
m_CookieSize2D: {x: 10, y: 10}
|
||||
m_Shadows:
|
||||
m_Type: 2
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
m_NearPlane: 0.2
|
||||
m_CullingMatrixOverride:
|
||||
e00: 1
|
||||
e01: 0
|
||||
e02: 0
|
||||
e03: 0
|
||||
e10: 0
|
||||
e11: 1
|
||||
e12: 0
|
||||
e13: 0
|
||||
e20: 0
|
||||
e21: 0
|
||||
e22: 1
|
||||
e23: 0
|
||||
e30: 0
|
||||
e31: 0
|
||||
e32: 0
|
||||
e33: 1
|
||||
m_UseCullingMatrixOverride: 0
|
||||
m_Cookie: {fileID: 0}
|
||||
m_DrawHalo: 0
|
||||
m_Flare: {fileID: 0}
|
||||
m_RenderMode: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingLayerMask: 1
|
||||
m_Lightmapping: 4
|
||||
m_LightShadowCasterMode: 0
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ColorTemperature: 5000
|
||||
m_UseColorTemperature: 1
|
||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_UseBoundingSphereOverride: 0
|
||||
m_UseViewFrustumForShadowCasterCull: 1
|
||||
m_ForceVisible: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
m_LightUnit: 1
|
||||
m_LuxAtDistance: 1
|
||||
m_EnableSpotReflector: 1
|
||||
--- !u!4 &410087041
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 410087039}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
||||
--- !u!114 &410087042
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 410087039}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UsePipelineSettings: 1
|
||||
m_AdditionalLightsShadowResolutionTier: 2
|
||||
m_CustomShadowLayers: 0
|
||||
m_LightCookieSize: {x: 1, y: 1}
|
||||
m_LightCookieOffset: {x: 0, y: 0}
|
||||
m_SoftShadowQuality: 1
|
||||
m_RenderingLayersMask:
|
||||
serializedVersion: 0
|
||||
m_Bits: 1
|
||||
m_ShadowRenderingLayersMask:
|
||||
serializedVersion: 0
|
||||
m_Bits: 1
|
||||
m_Version: 4
|
||||
m_LightLayerMask: 1
|
||||
m_ShadowLayerMask: 1
|
||||
m_RenderingLayers: 1
|
||||
m_ShadowRenderingLayers: 1
|
||||
--- !u!1001 &762024470
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1215790106131549770, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Size.z
|
||||
value: 0.3978837
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1215790106131549770, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Enabled
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1215790106131549770, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Center.z
|
||||
value: 0.101058155
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6544026473454475707, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Player
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 1.48
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -6.57
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7821156882341915560, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: d7417f9daec269d43bdfd5a35f2da89a, type: 3}
|
||||
--- !u!1 &832575517
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 832575519}
|
||||
- component: {fileID: 832575518}
|
||||
m_Layer: 0
|
||||
m_Name: Global Volume
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &832575518
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 832575517}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IsGlobal: 1
|
||||
priority: 0
|
||||
blendDistance: 0
|
||||
weight: 1
|
||||
sharedProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2}
|
||||
--- !u!4 &832575519
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 832575517}
|
||||
serializedVersion: 2
|
||||
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: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1118537122
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1118537126}
|
||||
- component: {fileID: 1118537125}
|
||||
- component: {fileID: 1118537124}
|
||||
- component: {fileID: 1118537123}
|
||||
m_Layer: 3
|
||||
m_Name: Plane
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!64 &1118537123
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1118537122}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 5
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &1118537124
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1118537122}
|
||||
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 &1118537125
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1118537122}
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &1118537126
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1118537122}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 15, y: 1, z: 15}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1430443543
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1430443547}
|
||||
- component: {fileID: 1430443546}
|
||||
- component: {fileID: 1430443545}
|
||||
- component: {fileID: 1430443544}
|
||||
m_Layer: 0
|
||||
m_Name: Cube
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!65 &1430443544
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1430443543}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
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 &1430443545
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1430443543}
|
||||
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 &1430443546
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1430443543}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &1430443547
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1430443543}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.3763, y: 0, z: 4.34}
|
||||
m_LocalScale: {x: 12.810944, y: 5.8166175, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 410087041}
|
||||
- {fileID: 832575519}
|
||||
- {fileID: 762024470}
|
||||
- {fileID: 1430443547}
|
||||
- {fileID: 94026887}
|
||||
- {fileID: 1118537126}
|
||||
7
Assets/_Recovery/0.unity.meta
Normal file
7
Assets/_Recovery/0.unity.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5954e88297a9d80418e76e95e2864a5f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,3 +1,4 @@
|
||||
<Solution>
|
||||
<Project Path="MerryYellow.CodeAssist.Editor.csproj" />
|
||||
<Project Path="Assembly-CSharp.csproj" />
|
||||
</Solution>
|
||||
|
||||
304
Packages/com.merry-yellow.code-assist/CHANGELOG.md
Normal file
304
Packages/com.merry-yellow.code-assist/CHANGELOG.md
Normal file
@@ -0,0 +1,304 @@
|
||||
List of new features, bug fixes and improvements
|
||||
|
||||
# Version 1.4.19
|
||||
* AGENTS.md support for agentic AI, copilot-instructions.md support is deprecated
|
||||
* Visual Studio 2026 compatibility
|
||||
* Bugfix for completions and inline visuals for sorting layer related members
|
||||
* Can unspecify max_tokens,temperature and top_p in the gpt request options
|
||||
* Gpt libraries and models are updated
|
||||
|
||||
# Version 1.4.18
|
||||
* New code completions: Material/Shader
|
||||
* New inline visuals: Material/Shader
|
||||
* Bugfix for inline text visuals when document is edited
|
||||
* Bugfix for completions for constructor method arguments
|
||||
* Hotfix for InputManager data fetching with custom tags
|
||||
* Gpt models are updated
|
||||
|
||||
# Version 1.4.17
|
||||
* Hotfix for Unity compile error
|
||||
|
||||
# Version 1.4.16
|
||||
* New code completions: RenderingLayerMask (Unity 6 and newer only)
|
||||
* New inline visuals: RenderingLayerMask (Unity 6 and newer only), and LayerMask
|
||||
* Hotfix for Unity editor freezes
|
||||
* Hotfix for inline visuals not showing properly when changing document in Visual Studio
|
||||
* Category SortingLayer removed, its items are now under category Layer
|
||||
* Minor fix for output window in Visual Studio
|
||||
* Gpt libraries and models are updated
|
||||
|
||||
# Version 1.4.15
|
||||
* Hotfix for code completion for attributes
|
||||
|
||||
# Version 1.4.14
|
||||
* New code completions: Attributes and preprocessor directives (#if, #elif)
|
||||
* New gpt feature: Add mode, gpt can add new files to the project
|
||||
* New gpt feature: For CodeLens, follow-up question and custom prompt
|
||||
* Gpt responses are logged to Visual Studio output window
|
||||
|
||||
# Version 1.4.13
|
||||
* Hotfix for gpt requests of OpenAI-API-Compatible platforms
|
||||
|
||||
# Version 1.4.12
|
||||
* Additional properties options added for gpt requests
|
||||
* Version number mistype fix for Unity asset package
|
||||
|
||||
# Version 1.4.11
|
||||
* Hotfix for gpt options page
|
||||
* Fix for applying transformers for newer versions of Visual Studio
|
||||
* Arm64 architecture support
|
||||
|
||||
# Version 1.4.10
|
||||
* Animations added to context aware instructions
|
||||
* Hotfix for context aware integrations (for GitHub Copilot)
|
||||
|
||||
# Version 1.4.9
|
||||
* Hotfix for gpt options page
|
||||
|
||||
# Version 1.4.8
|
||||
* Version bump for sister Visual Studio extensions
|
||||
|
||||
# Version 1.4.7
|
||||
* New gpt feature: Integration into GitHub Copilot. Can now feed GitHub Copilot with project/scene/game-object details.
|
||||
* Auto updater for itch.io builds
|
||||
|
||||
# Version 1.4.6
|
||||
* Updated binaries with new build parameters
|
||||
|
||||
# Version 1.4.5
|
||||
* Version skipped by mistake ^-^
|
||||
|
||||
# Version 1.4.4
|
||||
* Hotfix for Unity package compile error
|
||||
|
||||
# Version 1.4.3
|
||||
* New gpt provider: OpenAI API Compatible, for web/cloud services that supports OpenAI SDK standards
|
||||
|
||||
# Version 1.4.2
|
||||
* Bugfix for formatting and title of logging
|
||||
* Bugfix for CodeLens2Gpt when closing document
|
||||
|
||||
# Version 1.4.1
|
||||
* New gpt provider: Ollama, can use LLMs from local machine or private network
|
||||
|
||||
# Version 1.4.0
|
||||
* Gpt backend has been reimplemented for latest models and LLM trends
|
||||
* New gpt provider: Anthropic (Claude), can be used as an alternative to OpenAI ChatGPT and Google Gemini
|
||||
* New gpt provider: DeepSeek, can be used as an alternative to OpenAI ChatGPT and Google Gemini
|
||||
* New code completions: Scene management classes can be auto completed
|
||||
* New inline visuals: Scene management classes can display inline information
|
||||
|
||||
# Version 1.3.12
|
||||
* Hotfix for Microsoft Marketplace manifest file
|
||||
|
||||
# Version 1.3.11
|
||||
* Hotfix for Microsoft Marketplace manifest file
|
||||
|
||||
# Version 1.3.10
|
||||
* Hotfix for type resolving
|
||||
* Usability improvements for VSCode exporter
|
||||
* More filters for expected error logs
|
||||
|
||||
# Version 1.3.9
|
||||
* Hotfix for Unity sink
|
||||
|
||||
# Version 1.3.8
|
||||
* Hotfix for Unity sink
|
||||
|
||||
# Version 1.3.7
|
||||
* Bugfix for exporter/updater
|
||||
* Bugfix for logging options
|
||||
|
||||
# Version 1.3.6
|
||||
* VSCode readme updated
|
||||
|
||||
# Version 1.3.5
|
||||
* JSON library switched back to Newtonsoft.JSON
|
||||
* Rule xml files removed from Unity asset
|
||||
* Unnessary analyzer binaries are removed from Roslyn Analyzer
|
||||
|
||||
# Version 1.3.4
|
||||
* Stability improvements for network (mqttnet)
|
||||
* Hotfix for JSON mapping
|
||||
|
||||
# Version 1.3.3
|
||||
* Full version for VSCode is released!
|
||||
* Fix for VSCode adorments when document is modified
|
||||
* Binary files removed from Unity asset
|
||||
* Bugfix for network (mqttnet server)
|
||||
* VSCode extension stability improvements
|
||||
* VSCode roslyn analyzer stability improvements
|
||||
|
||||
# Version 1.3.2
|
||||
* Fixed cross-platform issues for Linux and macOS
|
||||
|
||||
# Version 1.3.1
|
||||
* Updated VSCode manifest and readme
|
||||
|
||||
# Version 1.3.0
|
||||
* Initial release for VSCode
|
||||
|
||||
# Version 1.2.6
|
||||
* Exporting when Unity is in play mode
|
||||
* Some error messages have been made more user friendly
|
||||
|
||||
# Version 1.2.5
|
||||
* Released on itch.io https://meryel.itch.io/unity-code-assist
|
||||
* Url changes
|
||||
|
||||
# Version 1.2.4
|
||||
* Bugfix for exporter with long file paths
|
||||
* Bugfix for retrieving animation and animator data
|
||||
|
||||
# Version 1.2.3
|
||||
* Bugfix for exporter when overwriting files
|
||||
* Bugfix for inline visuals when active game object changes
|
||||
|
||||
# Version 1.2.2
|
||||
* Bugfix for exporter when facing race condition
|
||||
|
||||
# Version 1.2.1
|
||||
* Typo fix for Options page
|
||||
* Bugfix for retrieving animation and animator data
|
||||
|
||||
# Version 1.2.0
|
||||
* New gpt provider: Google Gemini, can be used as an alternative to OpenAI ChatGPT
|
||||
* New feature: CodeLens2Gpt. Can request gpt queries from the CodeLens of methods and classes
|
||||
* New feature: Context aware gpt, gpt prompts are embedded with Unity, scene and object information
|
||||
* New feature: Package, asset has relocated under Packages directory (from Assets directýry), along with Unity setup menu items
|
||||
* New code completions: Animation and Animator classes and Invoke/Coroutine/Broadcast methods can be auto completed
|
||||
* New inline visuals: Animation and Animator classes can display inline information
|
||||
|
||||
# Version 1.1.12
|
||||
* External binary files have been customized and minimized
|
||||
* Domain reloading time have been reduced
|
||||
* Stability and usability improvements for exporter/updater
|
||||
* Bugfix for Feedback window
|
||||
|
||||
# Version 1.1.11
|
||||
* Gpt completion endpoint fixed for OpenAI API changes
|
||||
* Bugfix for Input Manager monitor
|
||||
* Bugfix for logging to Visual Studio output window
|
||||
* Bugfix for About window
|
||||
|
||||
# Version 1.1.10
|
||||
* Version skipped for compatibility with other assets
|
||||
|
||||
# Version 1.1.9
|
||||
* Gpt support for chat and edit
|
||||
* More options added for Gpt
|
||||
* Overall stability improvements
|
||||
* Exporter shows file locks if update/export is unsuccessful
|
||||
|
||||
# Version 1.1.8
|
||||
* Bugfix for non-Unity solutions
|
||||
|
||||
# Version 1.1.7
|
||||
* Bugfix for Visual Studio freeze
|
||||
|
||||
# Version 1.1.6
|
||||
* Gpt support added for shader files
|
||||
* Stability improvements for Unity.ScriptFinder
|
||||
|
||||
# Version 1.1.5
|
||||
* Stability and usability improvements for exporter/updater
|
||||
* Bugfix for Transformer Linq and Auto Input Manager
|
||||
* Usability for Transformer window, disabling it if not connected to Unity
|
||||
* Enhancement for completions, sorting numerical values correctly https://github.com/merryyellow/Unity-Code-Assist/issues/6
|
||||
|
||||
# Version 1.1.4
|
||||
* Auto Input Manager is now compatible with binary asset files
|
||||
* Stability and usability improvements for Transformer windows
|
||||
|
||||
# Version 1.1.3
|
||||
* Analyzers are working at a separate process https://github.com/merryyellow/Unity-Code-Assist/issues/20
|
||||
* Inline visuals stability and performance improvements https://github.com/merryyellow/Unity-Code-Assist/issues/22 https://github.com/merryyellow/Unity-Code-Assist/issues/24
|
||||
* Exporter/updater stability improvements https://github.com/merryyellow/Unity-Code-Assist/issues/19 https://github.com/merryyellow/Unity-Code-Assist/issues/23
|
||||
* Transformer window stability improvements https://github.com/merryyellow/Unity-Code-Assist/issues/21
|
||||
* Bugfix for Gpt busy icon positioning https://github.com/merryyellow/Unity-Code-Assist/issues/24
|
||||
|
||||
# Version 1.1.2
|
||||
* Bugfix for Yaml file parsing of InputManager
|
||||
|
||||
# Version 1.1.1
|
||||
* Bugfix for error handling of binary file parsing
|
||||
|
||||
# Version 1.1.0
|
||||
* New feature: Generative AI. Use OpenAI ChatGPT within comments to complete your code
|
||||
* New feature: Visual Studio menus. Access Unity Code Assist from "Extensions"->"Unity Code Assist"
|
||||
* New code completions: PlayerPrefs, EditorPrefs and Input classes' methods can be auto completed
|
||||
* New inline visuals: PlayerPrefs, EditorPrefs and Input classes' methods can display inline information
|
||||
* New code transformer: Auto Input Manager. Converts legacy input code into the new Input Manager
|
||||
|
||||
# Version 1.0.0.21
|
||||
* Stability improvements for Unity ScriptFinder class
|
||||
|
||||
# Version 1.0.0.20
|
||||
* Bugfix for crash at startup https://github.com/merryyellow/Unity-Code-Assist/issues/18
|
||||
|
||||
# Version 1.0.0.19
|
||||
* More logging for error tracking
|
||||
|
||||
# Version 1.0.0.18
|
||||
* Overall stability improvements, nullable references enabled for codebase
|
||||
* Stability improvements for communications, when reconnection occurs
|
||||
|
||||
# Version 1.0.0.17
|
||||
* Stability improvements for Unity ScriptFinder class
|
||||
|
||||
# Version 1.0.0.16
|
||||
* Bugfix for Visual Studio events concurrency
|
||||
|
||||
# Version 1.0.0.15
|
||||
* Visual Studio events are reimplemented for both stability and performance
|
||||
* Removal of possible Task deadlocks
|
||||
* Usability improvements for exporter/updater
|
||||
* Bugfix for exporter/updater, where prompts can appear twice
|
||||
* Bugfix for Inline Texts, where const null identifier may raise exceptions https://github.com/merryyellow/Unity-Code-Assist/issues/16
|
||||
* Bugfix for communications, where tags&layers are sent for the first time
|
||||
|
||||
# Version 1.0.0.14
|
||||
* Usability improvements for Visual Studio Status window where project is not a Unity project
|
||||
* Bugfix for communication reinitialization, where projects are closed and opened from Visual Studio https://github.com/merryyellow/Unity-Code-Assist/issues/15
|
||||
* Bugfix for Visual Studio events' initialization https://github.com/merryyellow/Unity-Code-Assist/issues/14
|
||||
|
||||
# Version 1.0.0.13
|
||||
* Bugfix for Unity where target object is neither Component nor MonoBehaviour https://github.com/merryyellow/Unity-Code-Assist/issues/13
|
||||
|
||||
# Version 1.0.0.12
|
||||
* New Feature: Updating Unity asset from Visual Studio
|
||||
* New Feature: Online error reporting of Unity errors
|
||||
* Usability improvement for Visual Studio Feedback window
|
||||
* Bugfix for Inline Texts where there is no class declaration https://github.com/merryyellow/Unity-Code-Assist/issues/5
|
||||
* Bugfix for Code Completion where there is no class declaration https://github.com/merryyellow/Unity-Code-Assist/issues/10
|
||||
* Bugfix for Visual Studio output window, where it may be unavailable
|
||||
|
||||
# Version 1.0.0.11
|
||||
* Bugfix for Visual Studio events' initialization https://github.com/merryyellow/Unity-Code-Assist/issues/3
|
||||
* Exporter now has more logs
|
||||
|
||||
# Version 1.0.0.10
|
||||
* Bugfix for Inline Texts where leading trivia is absent https://github.com/merryyellow/Unity-Code-Assist/issues/1
|
||||
* Bugfix for Visual Studio events' initialization https://github.com/merryyellow/Unity-Code-Assist/issues/2
|
||||
|
||||
# Version 1.0.0.9
|
||||
* Minor adjustments for initialization logging
|
||||
|
||||
# Version 1.0.0.8
|
||||
* Online analytics added
|
||||
* Bugfix for Inline Texts, Visual Studio code preview screen does not raise any exception anymore
|
||||
|
||||
# Version 1.0.0.7
|
||||
* Online error tracker added
|
||||
|
||||
# Version 1.0.0.6
|
||||
* Exporter is always disabled for non Unity projects
|
||||
|
||||
# Version 1.0.0.5
|
||||
* Lite version released at Visual Studio Marketplace
|
||||
* Exporting Unity asset from Visual Studio
|
||||
* Unity package become package independent (Removed Newtonsoft.Json dependency)
|
||||
|
||||
# Version 1.0.0
|
||||
* First release!
|
||||
* Released on Unity Asset Store
|
||||
7
Packages/com.merry-yellow.code-assist/CHANGELOG.md.meta
Normal file
7
Packages/com.merry-yellow.code-assist/CHANGELOG.md.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c541f26362738d45ad369a0458b7559
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Packages/com.merry-yellow.code-assist/Editor.meta
Normal file
8
Packages/com.merry-yellow.code-assist/Editor.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c4f29bc8d89b284cb9b38090b87a507
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
75
Packages/com.merry-yellow.code-assist/Editor/AboutWindow.cs
Normal file
75
Packages/com.merry-yellow.code-assist/Editor/AboutWindow.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
|
||||
#pragma warning disable IDE0005
|
||||
using Serilog = Meryel.Serilog;
|
||||
#pragma warning restore IDE0005
|
||||
|
||||
|
||||
#nullable enable
|
||||
|
||||
|
||||
namespace Meryel.UnityCodeAssist.Editor
|
||||
{
|
||||
public class AboutWindow : EditorWindow
|
||||
{
|
||||
GUIStyle? styleLabel;
|
||||
|
||||
public static void Display()
|
||||
{
|
||||
// Get existing open window or if none, make a new one:
|
||||
var window = GetWindow<AboutWindow>();
|
||||
window.Show();
|
||||
|
||||
Serilog.Log.Debug("Displaying about window");
|
||||
|
||||
MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "AboutWindow_Display");
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
//**--icon
|
||||
//var icon = AssetDatabase.LoadAssetAtPath<Texture>("Assets/Sprites/Gear.png");
|
||||
//titleContent = new GUIContent("Code Assist", icon);
|
||||
titleContent = new GUIContent("Code Assist About");
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
styleLabel ??= new GUIStyle(GUI.skin.label)
|
||||
{
|
||||
wordWrap = true,
|
||||
alignment = TextAnchor.MiddleLeft,
|
||||
};
|
||||
|
||||
EditorGUILayout.LabelField($"Version number: {Assister.Version}", styleLabel, GUILayout.ExpandWidth(true));
|
||||
|
||||
#if MERYEL_UCA_LITE_VERSION
|
||||
EditorGUILayout.LabelField($"License type: Lite", styleLabel, GUILayout.ExpandWidth(true));
|
||||
#else // MERYEL_UCA_LITE_VERSION
|
||||
EditorGUILayout.LabelField($"License type: Full", styleLabel, GUILayout.ExpandWidth(true));
|
||||
#endif // MERYEL_UCA_LITE_VERSION
|
||||
|
||||
if (GUILayout.Button("Update"))
|
||||
{
|
||||
Updater.CheckUpdateForced();
|
||||
}
|
||||
|
||||
if (GUILayout.Button("View changelog"))
|
||||
{
|
||||
Application.OpenURL("https://unitycodeassist.netlify.app/changelog");
|
||||
}
|
||||
|
||||
if (GUILayout.Button("View third party notices"))
|
||||
{
|
||||
Application.OpenURL("https://unitycodeassist.netlify.app/thirdpartynotices");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b773a1d4b9561324fa0bc568c62c3770
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,87 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
|
||||
#pragma warning disable IDE0005
|
||||
using Serilog = Meryel.Serilog;
|
||||
#pragma warning restore IDE0005
|
||||
|
||||
|
||||
#nullable enable
|
||||
|
||||
|
||||
namespace Meryel.UnityCodeAssist.Editor
|
||||
{
|
||||
// according to documentation, https://docs.unity3d.com/2023.2/Documentation/Manual/roslyn-analyzers.html
|
||||
// if analyzers are under any asmdef file, they are bound to the asmdef's scope
|
||||
// to declare out analyzers globally, had to write custom AssetPostprocessor and don't use "RoslynAnalyzer" asset label
|
||||
|
||||
public class AnalyzerPostProcessor : AssetPostprocessor
|
||||
{
|
||||
public static string OnGeneratedCSProject(string path, string content)
|
||||
{
|
||||
// do not add roslyn analyzers to Visual Studio projects for performance
|
||||
if (Assister.GetCodeEditor(false, out var isVisualStudio, out _, out _) && isVisualStudio)
|
||||
return content;
|
||||
|
||||
var analyzerGroup = new StringBuilder();
|
||||
analyzerGroup.Append(NewLine);
|
||||
analyzerGroup.Append(" <!--This section is added by Unity Code Assist-->");
|
||||
analyzerGroup.Append(NewLine);
|
||||
analyzerGroup.Append(" <ItemGroup>");
|
||||
|
||||
var prefix = $"{NewLine} <Analyzer Include=\"{CommonTools.GetExternalReferencesPath().Replace('/', '\\')}\\";
|
||||
var suffix = $"\" />";
|
||||
|
||||
foreach (var analyzer in Analyzers)
|
||||
{
|
||||
analyzerGroup.Append(prefix);
|
||||
analyzerGroup.Append(analyzer);
|
||||
analyzerGroup.Append(suffix);
|
||||
}
|
||||
|
||||
analyzerGroup.Append(NewLine);
|
||||
analyzerGroup.Append(" </ItemGroup>");
|
||||
//analyzerGroup.Append(NewLine);
|
||||
|
||||
|
||||
//content = Regex.Replace(content, $"[{NewLine}]*</Project>[{NewLine}]*", $"{analyzerGroup.ToString()}$&");
|
||||
var matches = Regex.Matches(content, $"[{NewLine}]*</Project>");
|
||||
var index = matches.LastOrDefault(m => m.Success)?.Index ?? -1;
|
||||
//var index = content.LastIndexOf("</Project>");
|
||||
|
||||
if (index >= 0)
|
||||
content = content.Insert(index, analyzerGroup.ToString());
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
private const string NewLine = "\r\n";
|
||||
|
||||
private readonly static string[] Analyzers = new string[]
|
||||
{
|
||||
#if MERYEL_UCA_LITE_VERSION
|
||||
"Meryel.UnityCodeAssist.AnalyzersLite.dll",
|
||||
#else
|
||||
"Meryel.UnityCodeAssist.Analyzers.dll",
|
||||
#endif
|
||||
"Meryel.UnityCodeAssist.Common.dll",
|
||||
"Meryel.UnityCodeAssist.Completion.dll",
|
||||
"Meryel.UnityCodeAssist.CompletionInternals.dll",
|
||||
"Meryel.UnityCodeAssist.Logger.dll",
|
||||
"Meryel.UnityCodeAssist.MQTTnet.dll",
|
||||
"Meryel.UnityCodeAssist.MQTTnet.Extensions.ManagedClient.dll",
|
||||
"Meryel.UnityCodeAssist.Newtonsoft.Json.dll",
|
||||
"Meryel.UnityCodeAssist.ProjectData.dll",
|
||||
"Meryel.UnityCodeAssist.RoslynAnalyzerManager.dll",
|
||||
"Meryel.UnityCodeAssist.Synchronizer.dll",
|
||||
"Meryel.UnityCodeAssist.SynchronizerModel.dll",
|
||||
"Meryel.UnityCodeAssist.VSIXLibrary.dll",
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 17f8bf228c22bbb438ef36b16a18652c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
609
Packages/com.merry-yellow.code-assist/Editor/Assister.cs
Normal file
609
Packages/com.merry-yellow.code-assist/Editor/Assister.cs
Normal file
@@ -0,0 +1,609 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
using CodeEditor = Unity.CodeEditor.CodeEditor;
|
||||
|
||||
|
||||
#pragma warning disable IDE0005
|
||||
using Serilog = Meryel.Serilog;
|
||||
#pragma warning restore IDE0005
|
||||
|
||||
|
||||
#nullable enable
|
||||
|
||||
|
||||
namespace Meryel.UnityCodeAssist.Editor
|
||||
{
|
||||
public class Assister
|
||||
{
|
||||
public const string Version = "1.4.19"; //do NOT modify this line, except the number value, its being used by VSCode/Typescript for version detection (in exporter.ts.getVersionOfUnitySide())
|
||||
|
||||
#if MERYEL_UCA_LITE_VERSION
|
||||
public const string Title = "Code Assist Lite";
|
||||
#else
|
||||
public const string Title = "Code Assist";
|
||||
#endif
|
||||
|
||||
[MenuItem("Tools/" + Title + "/Status", false, 1)]
|
||||
static void DisplayStatusWindow()
|
||||
{
|
||||
StatusWindow.Display();
|
||||
}
|
||||
|
||||
|
||||
[MenuItem("Tools/" + Title + "/Synchronize", false, 2)]
|
||||
static void Sync()
|
||||
{
|
||||
EditorCoroutines.EditorCoroutineUtility.StartCoroutine(SyncAux(), MQTTnetInitializer.Publisher);
|
||||
|
||||
//MQTTnetInitializer.Publisher.SendConnect();
|
||||
//Serilog.Log.Information("Code Assist is looking for more IDEs to connect to...");
|
||||
|
||||
MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "Synchronize_MenuItem");
|
||||
}
|
||||
|
||||
|
||||
[MenuItem("Tools/" + Title + "/Report error", false, 91)]
|
||||
static void DisplayFeedbackWindow()
|
||||
{
|
||||
FeedbackWindow.Display();
|
||||
}
|
||||
|
||||
[MenuItem("Tools/" + Title + "/About", false, 92)]
|
||||
static void DisplayAboutWindow()
|
||||
{
|
||||
AboutWindow.Display();
|
||||
}
|
||||
|
||||
#if MERYEL_UCA_LITE_VERSION
|
||||
[MenuItem("Tools/" + Title + "/Compare versions", false, 31)]
|
||||
static void CompareVersions()
|
||||
{
|
||||
Application.OpenURL("http://unitycodeassist.netlify.app/compare");
|
||||
|
||||
MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "CompareVersions_MenuItem");
|
||||
}
|
||||
|
||||
[MenuItem("Tools/" + Title + "/Get full version", false, 32)]
|
||||
static void GetFullVersion()
|
||||
{
|
||||
Application.OpenURL("https://unitycodeassist.netlify.app/purchase?utm_source=unity_getfull");
|
||||
|
||||
MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "FullVersion_MenuItem");
|
||||
}
|
||||
#endif // MERYEL_UCA_LITE_VERSION
|
||||
|
||||
[MenuItem("Tools/" + Title + "/Setup/Upgrade to full version", false, 65)]
|
||||
public static void Upgrade()
|
||||
{
|
||||
MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "Upgrade_MenuItem");
|
||||
|
||||
#if MERYEL_UCA_LITE_VERSION
|
||||
Serilog.Log.Information("Purchase <a href=\"https://unitycodeassist.netlify.app/purchase?utm_source=unity_upgrade\">Unity Code Assist</a> from the <a href=\"http://u3d.as/2N2H\">Asset Store</a> or <a href=\"https://meryel.itch.io/unity-code-assist\">itch.io</a> first. Then download it from the package manager or itch.io");
|
||||
return;
|
||||
#else
|
||||
if (GetCodeEditor(true, out var isVisualStudio, out var isVisualStudioCode, out var error))
|
||||
{
|
||||
if (isVisualStudio)
|
||||
{
|
||||
var vsixPath = CommonTools.GetInstallerPath("CodeAssist.Full.VisualStudio.Installer.vsix");
|
||||
if (System.IO.File.Exists(vsixPath))
|
||||
{
|
||||
CallVisualStudioInstaller(vsixPath);
|
||||
return;
|
||||
}
|
||||
|
||||
var zipPath = CommonTools.GetInstallerPath("CodeAssist.Full.VisualStudio.Installer.zip");
|
||||
if (System.IO.File.Exists(zipPath))
|
||||
{
|
||||
var tempVsixPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "CodeAssist.Full.VisualStudio.Installer.vsix");
|
||||
System.IO.File.Copy(zipPath, tempVsixPath, true);
|
||||
|
||||
CallVisualStudioInstaller(tempVsixPath);
|
||||
return;
|
||||
}
|
||||
|
||||
Serilog.Log.Information("Installer for Visual Studio couldn't be found at {ZipPath}. Please try re-importing the asset from the package manager", zipPath);
|
||||
return;
|
||||
}
|
||||
else if (isVisualStudioCode)
|
||||
{
|
||||
var vsixPath = CommonTools.GetInstallerPath("CodeAssist.Full.VSCode.Installer.vsix");
|
||||
if (System.IO.File.Exists(vsixPath))
|
||||
{
|
||||
CallVSCodeInstaller(vsixPath);
|
||||
return;
|
||||
}
|
||||
|
||||
var zipPath = CommonTools.GetInstallerPath("CodeAssist.Full.VSCode.Installer.zip");
|
||||
if (System.IO.File.Exists(zipPath))
|
||||
{
|
||||
var tempVsixPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "CodeAssist.Full.VSCode.Installer.vsix");
|
||||
System.IO.File.Copy(zipPath, tempVsixPath, true);
|
||||
|
||||
CallVSCodeInstaller(tempVsixPath);
|
||||
return;
|
||||
}
|
||||
|
||||
Serilog.Log.Information("Installer for VS Code couldn't be found at {ZipPath}. Please try re-importing the asset from the package manager", zipPath);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Serilog.Log.Information(error!);
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
[MenuItem("Tools/" + Title + "/Setup/Update", false, 61)]
|
||||
static void Update()
|
||||
{
|
||||
//UnityEditor.PackageManager.Client.
|
||||
}
|
||||
*/
|
||||
|
||||
[MenuItem("Tools/" + Title + "/Setup/Re-import package", false, 62)]
|
||||
static void RepairFiles()
|
||||
{
|
||||
if (MQTTnetInitializer.Publisher?.Clients.Any() != true)
|
||||
Serilog.Log.Information("No connected IDE found. Please start up Visual Studio or VS Code first");
|
||||
|
||||
//var cleanupPath = CommonTools.GetToolPath("CleanupObsoleteFiles.bat");
|
||||
//Execute(cleanupPath);
|
||||
Cleanup.DoCleanup();
|
||||
|
||||
MQTTnetInitializer.Publisher?.SendRequestUpdate("Unity", string.Empty, true);
|
||||
|
||||
MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "Reimport_MenuItem");
|
||||
}
|
||||
|
||||
[MenuItem("Tools/" + Title + "/Setup/Import files for .NET Standard 2.0", false, 63)]
|
||||
static void ImportSystemBinariesForDotNetStandard20()
|
||||
{
|
||||
var solutionDirectory = CommonTools.GetProjectPath();
|
||||
var cSharpVersion = Cleanup.GetCSharpVersionFromUnityProjectVersionFile(solutionDirectory);
|
||||
|
||||
if (cSharpVersion >= 9)
|
||||
{
|
||||
if (!EditorUtility.DisplayDialog("Import files for .NET Standard 2.0",
|
||||
"This is not required for versions of Unity 2021.2 and newer. Do you still want to continue?",
|
||||
"Okay", "Cancel"))
|
||||
{
|
||||
Serilog.Log.Debug("ImportNetStandard20_MenuItem cancelled via confirm dialog");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (MQTTnetInitializer.Publisher?.Clients.Any() != true)
|
||||
Serilog.Log.Information("No connected IDE found. Please start up Visual Studio or VS Code first");
|
||||
|
||||
MQTTnetInitializer.Publisher?.SendRequestUpdate("SystemBinariesForDotNetStandard20", string.Empty, true);
|
||||
|
||||
MQTTnetInitializer.Publisher?.SendAnalyticsEvent("Gui", "ImportNetStandard20_MenuItem");
|
||||
}
|
||||
|
||||
[MenuItem("Tools/" + Title + "/Setup/Regenerate project files", false, 64)]
|
||||
public static void RegenerateProjectFiles() => RegenerateProjectFilesAux(true);
|
||||
|
||||
public static void RegenerateProjectFilesAux(bool showError)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (GetCodeEditor(true, out _, out _, out var error))
|
||||
{
|
||||
CodeEditor.Editor.CurrentCodeEditor.SyncAll();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (showError && error != null)
|
||||
Serilog.Log.Information(error);
|
||||
|
||||
// other similar approaches
|
||||
// https://www.reddit.com/r/Unity3D/comments/s1joc6/help_with_generating_csproj_and_sln_for_github/
|
||||
// https://discussions.unity.com/t/manually-generate-sln-and-csproj-files/648686/6
|
||||
// https://discussions.unity.com/t/how-can-i-generate-csproj-files-during-continuous-integration-builds/842493/3
|
||||
// https://github.com/Unity-Technologies/UnityCsReference/blob/f45f297f342239326ea865a57a1bb8ddf93e38c6/Editor/Mono/CodeEditor/SyncVS.cs#L22
|
||||
var t = ScriptFinder.GetType123("Microsoft.Unity.VisualStudio.Editor.Cli");
|
||||
var m = t!.GetMethod("GenerateSolution", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
|
||||
m.Invoke(null, null);
|
||||
}
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Serilog.Log.Error(ex, "Couldn't invoke GenerateSolution");
|
||||
Serilog.Log.Information("Please 'Regenerate project files' manually. 'Edit'->'Preferences'->'External Tools'->'Regenerate project files'");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static IEnumerator CallShell(string command, string ide)
|
||||
{
|
||||
Serilog.Log.Debug("calling shell with command: {Command}", command);
|
||||
var task = Shell.UnityEditorShell.Execute(command);
|
||||
task.OnLog += (logType, log) =>
|
||||
{
|
||||
Serilog.Log.Debug("shell log: {Log}", log);
|
||||
};
|
||||
task.OnExit += (code) =>
|
||||
{
|
||||
Serilog.Log.Debug("shell exit: {Code}", code);
|
||||
if (code == 0)
|
||||
Serilog.Log.Information($"{ide} extension installed successfully. Please restart {ide}");
|
||||
else
|
||||
Serilog.Log.Information($"{ide} extension installation failed. Please try manual installition at {CommonTools.GetInstallerPath(string.Empty)}");
|
||||
};
|
||||
yield return new Shell.ShellCommandYieldable(task);
|
||||
}
|
||||
|
||||
static void CallVisualStudioInstaller(string vsixPath)
|
||||
{
|
||||
EditorCoroutines.EditorCoroutineUtility.StartCoroutine(CallShell(
|
||||
$"@for /f \"usebackq delims=\" %i in (`\"%ProgramFiles(x86)%\\Microsoft Visual Studio\\Installer\\vswhere.exe\" -latest -prerelease -products * -property enginePath`) do @set enginePath=%i & if exist \"%i\\VSIXInstaller.exe\" call \"%i\\VSIXInstaller.exe\" /u:VSIXLite2.6815b720-6186-48a1-a405-1387e54b41c6 & call \"%i\\VSIXInstaller.exe\" \"{vsixPath}\"", "Visual Studio"), MQTTnetInitializer.Publisher);
|
||||
}
|
||||
|
||||
static void CallVSCodeInstaller(string vsixPath)
|
||||
{
|
||||
string command;
|
||||
#if UNITY_EDITOR_WIN
|
||||
command = $"code --uninstall-extension MerryYellow.uca-lite-vscode & code --install-extension \"{vsixPath}\"";
|
||||
#elif UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX
|
||||
command = $"code --uninstall-extension MerryYellow.uca-lite-vscode ; code --install-extension \"{vsixPath}\"";
|
||||
#else
|
||||
Serilog.Log.Error("invalid platform at {Location}", nameof(CallVSCodeInstaller));
|
||||
command = string.Empty;
|
||||
#endif
|
||||
|
||||
EditorCoroutines.EditorCoroutineUtility.StartCoroutine(CallShell(command, "VS Code"), MQTTnetInitializer.Publisher);
|
||||
}
|
||||
|
||||
internal static string Execute(string vsixPath, bool isVisualStudio = false, bool isVSCode = false)
|
||||
{
|
||||
var startInfo = new System.Diagnostics.ProcessStartInfo
|
||||
{
|
||||
WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden,
|
||||
//startInfo.FileName = GetExePath();
|
||||
FileName = vsixPath,
|
||||
//startInfo.Arguments = args;
|
||||
UseShellExecute = false,
|
||||
RedirectStandardOutput = true
|
||||
//startInfo.WorkingDirectory = workingDirectoryPath;
|
||||
};
|
||||
var process = new System.Diagnostics.Process
|
||||
{
|
||||
StartInfo = startInfo
|
||||
};
|
||||
|
||||
try
|
||||
{
|
||||
process.Start();
|
||||
}
|
||||
catch (System.ComponentModel.Win32Exception ex)
|
||||
{
|
||||
Serilog.Log.Error(ex, "Error at running bat file {File}", vsixPath);
|
||||
}
|
||||
|
||||
string output = process.StandardOutput.ReadToEnd();
|
||||
process.WaitForExit();
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
static IEnumerator SyncAux()
|
||||
{
|
||||
var clientCount = MQTTnetInitializer.Publisher?.Clients.Count() ?? 0;
|
||||
MQTTnetInitializer.Publisher?.SendConnect();
|
||||
Serilog.Log.Information("Code Assist is looking for more IDEs to connect to...");
|
||||
|
||||
//yield return new WaitForSeconds(3);
|
||||
yield return new EditorCoroutines.EditorWaitForSeconds(3);
|
||||
|
||||
var newClientCount = MQTTnetInitializer.Publisher?.Clients.Count() ?? 0;
|
||||
|
||||
var dif = newClientCount - clientCount;
|
||||
|
||||
if (dif <= 0)
|
||||
Serilog.Log.Information("Code Assist couldn't find any new IDE to connect to.");
|
||||
else
|
||||
Serilog.Log.Information("Code Assist is connected to {Dif} new IDE(s).", dif);
|
||||
}
|
||||
|
||||
#if MERYEL_DEBUG
|
||||
|
||||
[MenuItem("Code Assist/Binary2Text")]
|
||||
static void Binary2Text()
|
||||
{
|
||||
var filePath = CommonTools.GetInputManagerFilePath();
|
||||
var hash = Input.UnityInputManager.GetMD5Hash(filePath);
|
||||
var convertedPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), $"UCA_IM_{hash}.txt");
|
||||
|
||||
var b = new Input.Binary2TextExec();
|
||||
b.Exec(filePath, convertedPath, detailed: false, largeBinaryHashOnly: false, hexFloat: false);
|
||||
}
|
||||
|
||||
[MenuItem("Code Assist/Bump InputManager")]
|
||||
static void BumpInputManager()
|
||||
{
|
||||
Input.InputManagerMonitor.Instance.Bump();
|
||||
}
|
||||
|
||||
|
||||
[MenuItem("Code Assist/Layer Check")]
|
||||
static void UpdateLayers()
|
||||
{
|
||||
var names = UnityEditorInternal.InternalEditorUtility.layers;
|
||||
var indices = names.Select(l => LayerMask.NameToLayer(l).ToString()).ToArray();
|
||||
MQTTnetInitializer.Publisher?.SendLayers(indices, names);
|
||||
|
||||
var sls = SortingLayer.layers;
|
||||
var sortingNames = sls.Select(sl => sl.name).ToArray();
|
||||
var sortingIds = sls.Select(sl => sl.id.ToString()).ToArray();
|
||||
var sortingValues = sls.Select(sl => sl.value.ToString()).ToArray();
|
||||
|
||||
MQTTnetInitializer.Publisher?.SendSortingLayers(sortingNames, sortingIds, sortingValues);
|
||||
|
||||
/*
|
||||
for (var i = 0; i < 32; i++)
|
||||
{
|
||||
var name = LayerMask.LayerToName(i);
|
||||
if (!string.IsNullOrEmpty(name))
|
||||
{
|
||||
Debug.Log(i + ":" + name);
|
||||
}
|
||||
}
|
||||
|
||||
if (ScriptFinder.FindGameObjectOfType("Deneme", out var go))
|
||||
MQTTnetInitializer.Publisher.SendGameObject(go);
|
||||
*/
|
||||
}
|
||||
|
||||
[MenuItem("Code Assist/Tag Check")]
|
||||
static void UpdateTags()
|
||||
{
|
||||
Serilog.Log.Debug("Listing tags {Count}", UnityEditorInternal.InternalEditorUtility.tags.Length);
|
||||
|
||||
foreach (var tag in UnityEditorInternal.InternalEditorUtility.tags)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(tag))
|
||||
{
|
||||
Serilog.Log.Debug("{Tag}", tag);
|
||||
}
|
||||
}
|
||||
|
||||
MQTTnetInitializer.Publisher?.SendTags(UnityEditorInternal.InternalEditorUtility.tags);
|
||||
|
||||
}
|
||||
|
||||
[MenuItem("Code Assist/GO Check")]
|
||||
|
||||
static void TestGO()
|
||||
{
|
||||
|
||||
var go = GameObject.Find("Deneme");
|
||||
//var go = MonoBehaviour.FindObjectOfType<Deneme>().gameObject;
|
||||
|
||||
MQTTnetInitializer.Publisher?.SendGameObject(go);
|
||||
}
|
||||
|
||||
[MenuItem("Code Assist/Undo Records Test")]
|
||||
static void UndoTest()
|
||||
{
|
||||
var undos = new List<string>();
|
||||
var redos = new List<string>();
|
||||
|
||||
var type = typeof(Undo);
|
||||
System.Reflection.MethodInfo dynMethod = type.GetMethod("GetRecords",
|
||||
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
|
||||
dynMethod.Invoke(null, new object[] { undos, redos });
|
||||
|
||||
Serilog.Log.Debug("undos:{UndoCount},redos:{RedoCount}", undos.Count, redos.Count);
|
||||
|
||||
var last = undos.LastOrDefault();
|
||||
if (last != null)
|
||||
{
|
||||
Serilog.Log.Debug("last:{Last}", last);
|
||||
Serilog.Log.Debug("group:{UndoCurrentGroup},{UndoCurrentGroupName}",
|
||||
Undo.GetCurrentGroup(), Undo.GetCurrentGroupName());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[MenuItem("Code Assist/Undo List Test")]
|
||||
static void Undo2Test()
|
||||
{
|
||||
|
||||
//List<string> undoList, out int undoCursor
|
||||
var undoList = new List<string>();
|
||||
int undoCursor = int.MaxValue;
|
||||
var type = typeof(Undo);
|
||||
System.Reflection.MethodInfo dynMethod = type.GetMethod("GetUndoList",
|
||||
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
|
||||
|
||||
dynMethod = type.GetMethod("GetUndoList",
|
||||
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static,
|
||||
null,
|
||||
new System.Type[] { typeof(List<string>), typeof(int).MakeByRefType() },
|
||||
null);
|
||||
|
||||
|
||||
dynMethod.Invoke(null, new object[] { undoList, undoCursor });
|
||||
|
||||
Serilog.Log.Debug("undo count: {Count}", undoList.Count);
|
||||
|
||||
}
|
||||
|
||||
[MenuItem("Code Assist/Reload Domain")]
|
||||
static void ReloadDomain()
|
||||
{
|
||||
EditorUtility.RequestScriptReload();
|
||||
}
|
||||
|
||||
/*
|
||||
[MenuItem("Code Assist/TEST")]
|
||||
static void TEST()
|
||||
{
|
||||
//if (ScriptFinder.FindGameObjectOfType("Deneme_OtherScene", out var go))
|
||||
if (ScriptFinder.FindInstanceOfType("Deneme_SO", out var go, out var so))
|
||||
{
|
||||
MQTTnetInitializer.Publisher.SendScriptableObject(so);
|
||||
}
|
||||
|
||||
ScriptFinder.DENEMEEEE();
|
||||
|
||||
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
#endif // MERYEL_DEBUG
|
||||
|
||||
|
||||
public static void SendTagsAndLayers()
|
||||
{
|
||||
Serilog.Log.Debug(nameof(SendTagsAndLayers));
|
||||
|
||||
var tags = UnityEditorInternal.InternalEditorUtility.tags;
|
||||
MQTTnetInitializer.Publisher?.SendTags(tags);
|
||||
|
||||
var layerNames = UnityEditorInternal.InternalEditorUtility.layers;
|
||||
var layerIndices = layerNames.Select(l => LayerMask.NameToLayer(l).ToString()).ToArray();
|
||||
MQTTnetInitializer.Publisher?.SendLayers(layerNames, layerIndices);
|
||||
|
||||
var sls = SortingLayer.layers;
|
||||
var sortingNames = sls.Select(sl => sl.name).ToArray();
|
||||
var sortingIds = sls.Select(sl => sl.id.ToString()).ToArray();
|
||||
var sortingValues = sls.Select(sl => sl.value.ToString()).ToArray();
|
||||
MQTTnetInitializer.Publisher?.SendSortingLayers(sortingNames, sortingIds, sortingValues);
|
||||
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
// Version 6+ only, 2022.3 doesn't have class RenderingLayerMask, even though some renderingLayerMask fields/properties are declared
|
||||
|
||||
var renderingLayerCount = RenderingLayerMask.GetRenderingLayerCount();
|
||||
var renderingLayerIndices = new string[renderingLayerCount];
|
||||
var renderingLayerNames = new string[renderingLayerCount];
|
||||
for (var i = 0; i < renderingLayerCount; i++)
|
||||
{
|
||||
renderingLayerIndices[i] = i.ToString();
|
||||
renderingLayerNames[i] = RenderingLayerMask.RenderingLayerToName(i);
|
||||
}
|
||||
MQTTnetInitializer.Publisher?.SendRenderingLayers(renderingLayerNames, renderingLayerIndices);
|
||||
|
||||
#endif // UNITY_6000_0_OR_NEWER
|
||||
}
|
||||
|
||||
public static bool GetCodeEditor(bool checkVersion, out bool isVisualStudio, out bool isVisualStudioCode, out string? error)
|
||||
{
|
||||
isVisualStudio = false;
|
||||
isVisualStudioCode = false;
|
||||
|
||||
if (CodeEditor.Editor.CurrentCodeEditor.TryGetInstallationForPath(CodeEditor.CurrentEditorInstallation, out var installation))
|
||||
{
|
||||
if (installation.Name.StartsWith("Visual Studio Code"))
|
||||
isVisualStudioCode = true;
|
||||
else if (installation.Name.StartsWith("Visual Studio"))
|
||||
isVisualStudio = true;
|
||||
|
||||
if (!isVisualStudioCode && !isVisualStudio)
|
||||
{
|
||||
error = $"Unsupported code editor: {installation.Name}. Unity Code Assist only supports Visual Studio and Visual Studio Code";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (installation.Name.Contains("(internal)"))
|
||||
{
|
||||
error = "Code editor set but not working properly. Please try updating 'Visual Studio Editor' package";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!checkVersion)
|
||||
{
|
||||
error = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
var versionRegex = new System.Text.RegularExpressions.Regex(".*\\[([\\d\\.]+)\\]");
|
||||
var versionStr = versionRegex.Match(installation.Name).Groups.ElementAtOrDefault(1)?.Value;
|
||||
|
||||
if (isVisualStudioCode && !string.IsNullOrEmpty(versionStr) && (VersionCompare(versionStr!, "1.76") < 0))
|
||||
{
|
||||
error = $"Version {versionStr} of Visual Studio Code is not supported by Unity Code Assist. Please update Visual Studio Code";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isVisualStudio && !string.IsNullOrEmpty(versionStr) && (VersionCompare(versionStr!, "17") < 0))
|
||||
{
|
||||
error = $"Version {versionStr} of Visual Studio is not supported by Unity Code Assist. Please update Visual Studio";
|
||||
return false;
|
||||
}
|
||||
|
||||
error = null;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
error = "No code editor found. Please set it through 'Edit'->'Preferences'->'External Tools'->'External Script Editor'";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
//https://www.geeksforgeeks.org/compare-two-version-numbers/amp/
|
||||
public static int VersionCompare(string v1, string v2)
|
||||
{
|
||||
// vnum stores each numeric
|
||||
|
||||
// part of version
|
||||
|
||||
int vnum1 = 0, vnum2 = 0;
|
||||
|
||||
// loop until both string are
|
||||
// processed
|
||||
|
||||
for (int i = 0, j = 0; (i < v1.Length || j < v2.Length);)
|
||||
|
||||
{
|
||||
// storing numeric part of
|
||||
// version 1 in vnum1
|
||||
while (i < v1.Length && v1[i] != '.')
|
||||
{
|
||||
|
||||
vnum1 = vnum1 * 10 + (v1[i] - '0');
|
||||
|
||||
i++;
|
||||
}
|
||||
// storing numeric part of
|
||||
|
||||
// version 2 in vnum2
|
||||
|
||||
while (j < v2.Length && v2[j] != '.')
|
||||
{
|
||||
vnum2 = vnum2 * 10 + (v2[j] - '0');
|
||||
j++;
|
||||
}
|
||||
if (vnum1 > vnum2)
|
||||
return 1;
|
||||
|
||||
if (vnum2 > vnum1)
|
||||
return -1;
|
||||
|
||||
// if equal, reset variables and
|
||||
|
||||
// go for next numeric part
|
||||
vnum1 = vnum2 = 0;
|
||||
i++;
|
||||
j++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 394bf783968f6dd4ab2ca0e1e7258147
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
390
Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs
Normal file
390
Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs
Normal file
@@ -0,0 +1,390 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Security.AccessControl;
|
||||
using System.Security.Principal;
|
||||
|
||||
#pragma warning disable IDE0005
|
||||
using Serilog = Meryel.Serilog;
|
||||
#pragma warning restore IDE0005
|
||||
|
||||
|
||||
#nullable enable
|
||||
|
||||
|
||||
namespace Meryel.UnityCodeAssist.Editor
|
||||
{
|
||||
|
||||
// copied from Exporter.cs in VSIX
|
||||
public static class Cleanup
|
||||
{
|
||||
public static bool DoCleanup()
|
||||
{
|
||||
var assetsPath = UnityEngine.Application.dataPath;
|
||||
|
||||
var _solutionDirectory = CommonTools.GetProjectPath();
|
||||
var destination = _solutionDirectory;
|
||||
var oldDestination = assetsPath;
|
||||
|
||||
|
||||
var succeed = true;
|
||||
try
|
||||
{
|
||||
Cleanup1(oldDestination);
|
||||
Cleanup2(oldDestination);
|
||||
Cleanup3(oldDestination, _solutionDirectory);
|
||||
Cleanup4(oldDestination);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
succeed = false;
|
||||
Serilog.Log.Error(ex, "DoCleanup failed at {Destination}", destination);
|
||||
}
|
||||
|
||||
return succeed;
|
||||
}
|
||||
|
||||
|
||||
private static void DeleteFileAndItsMeta(string filePath)
|
||||
{
|
||||
if (File.Exists(filePath))
|
||||
{
|
||||
Serilog.Log.Debug("Deleting file {File}", filePath);
|
||||
//File.Delete(filePath);
|
||||
DeleteFileAux(filePath);
|
||||
Serilog.Log.Debug("Deleted file {File} {Exists}", filePath, File.Exists(filePath));
|
||||
}
|
||||
var metaFilePath = filePath + ".meta";
|
||||
if (File.Exists(metaFilePath))
|
||||
{
|
||||
Serilog.Log.Debug("Deleting meta file {File}", metaFilePath);
|
||||
//File.Delete(metaFilePath);
|
||||
DeleteFileAux(metaFilePath);
|
||||
Serilog.Log.Debug("Deleted file {File} {Exists}", metaFilePath, File.Exists(metaFilePath));
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsDirectoryExistsAndEmpty(string path)
|
||||
{
|
||||
return Directory.Exists(path) && !Directory.EnumerateFileSystemEntries(path).Any();
|
||||
}
|
||||
|
||||
private static void DeleteDirectoryAndItsMeta(string directoryPath)
|
||||
{
|
||||
if (IsDirectoryExistsAndEmpty(directoryPath))
|
||||
{
|
||||
Serilog.Log.Debug("Deleting directory {Dir}", directoryPath);
|
||||
Directory.Delete(directoryPath);
|
||||
Serilog.Log.Debug("Deleted directory {Dir} {Exists}", directoryPath, IsDirectoryExistsAndEmpty(directoryPath));
|
||||
|
||||
var metaFilePath = directoryPath + ".meta";
|
||||
if (File.Exists(metaFilePath))
|
||||
{
|
||||
Serilog.Log.Debug("Deleting directory meta file {File}", metaFilePath);
|
||||
//File.Delete(metaFilePath);
|
||||
DeleteFileAux(metaFilePath);
|
||||
Serilog.Log.Debug("Deleted directory meta file {File} {Exists}", metaFilePath, File.Exists(metaFilePath));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void DeleteFileAux(string filePath)
|
||||
{
|
||||
try
|
||||
{
|
||||
File.Delete(filePath);
|
||||
}
|
||||
catch (UnauthorizedAccessException)
|
||||
{
|
||||
var fileDirectoryPath = Path.GetDirectoryName(filePath);
|
||||
SetEveryoneAccessToDirectory(fileDirectoryPath, out _);
|
||||
TakeOwnership(filePath);
|
||||
File.Delete(filePath);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Set Everyone Full Control permissions for selected directory
|
||||
/// </summary>
|
||||
/// <param name="dirName"></param>
|
||||
/// <returns></returns>
|
||||
static bool SetEveryoneAccessToDirectory(string dirName, out string _lastError)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
// Make sure directory exists
|
||||
if (Directory.Exists(dirName) == false)
|
||||
throw new Exception(string.Format("Directory {0} does not exist, so permissions cannot be set.", dirName));
|
||||
|
||||
// Get directory access info
|
||||
DirectoryInfo dinfo = new DirectoryInfo(dirName);
|
||||
DirectorySecurity dSecurity = dinfo.GetAccessControl();
|
||||
|
||||
// Add the FileSystemAccessRule to the security settings.
|
||||
dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow));
|
||||
|
||||
// Set the access control
|
||||
dinfo.SetAccessControl(dSecurity);
|
||||
|
||||
_lastError = String.Format("Everyone FullControl Permissions were set for directory {0}", dirName);
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_lastError = ex.Message;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="solutionDirectory"></param>
|
||||
/// <param name="cs_7_3_orLower"></param>
|
||||
/// <param name="cs_8_0"></param>
|
||||
/// <param name="cs_9_0_orHigher"></param>
|
||||
/// <returns>
|
||||
/// 7 if C# 7.3 or lower,
|
||||
/// 8 if C# 8.0 (.netstandard2.0),
|
||||
/// 9 if C# 9.0 (.netstandard2.1),
|
||||
/// -1 if error
|
||||
/// </returns>
|
||||
public static int GetCSharpVersionFromUnityProjectVersionFile(string? solutionDirectory)
|
||||
{
|
||||
if (string.IsNullOrEmpty(solutionDirectory))
|
||||
return -1;
|
||||
|
||||
var projectVersionFilePath = System.IO.Path.Combine(solutionDirectory, "ProjectSettings/ProjectVersion.txt");
|
||||
if (!System.IO.File.Exists(projectVersionFilePath))
|
||||
return -1;
|
||||
|
||||
|
||||
string? version = null;
|
||||
string[]? readText = null;
|
||||
try
|
||||
{
|
||||
readText = System.IO.File.ReadAllLines(projectVersionFilePath);
|
||||
// format is m_EditorVersion: 2018.2.0b7
|
||||
string[] versionText = readText[0].Split(' ');
|
||||
version = versionText[1];
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Serilog.Log.Error(ex, "Project version file parsing error {FirstLine}", readText?.FirstOrDefault());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (version == null)
|
||||
{
|
||||
Serilog.Log.Error("Parsed project version is null");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// see my personal notes for Unity version X C# version table
|
||||
// which is at OneNote->ShinSekai->CEPostRelease->UnityCompilerC#VersionTable
|
||||
|
||||
if (version.StartsWith("5.") || version.StartsWith("2017.") ||
|
||||
version.StartsWith("2018.") || version.StartsWith("2019.") || version.StartsWith("2020.1."))
|
||||
return 7;
|
||||
|
||||
if (version.StartsWith("2020.") || version.StartsWith("2021.1."))
|
||||
return 8;
|
||||
|
||||
if (version.StartsWith("2021.") || version.StartsWith("2022.") ||
|
||||
version.StartsWith("2023.") || version.StartsWith("6000."))
|
||||
return 9;
|
||||
|
||||
Serilog.Log.Error("Parsed project version is unknown {Version}", version);
|
||||
return -1;
|
||||
}
|
||||
|
||||
private static void TakeOwnership(string filename)
|
||||
{
|
||||
// Remove read-only attribute
|
||||
File.SetAttributes(filename, File.GetAttributes(filename) & ~FileAttributes.ReadOnly);
|
||||
|
||||
FileSecurity security = new FileSecurity();
|
||||
|
||||
SecurityIdentifier sid = WindowsIdentity.GetCurrent().User;
|
||||
security.SetOwner(sid);
|
||||
security.SetAccessRule(new FileSystemAccessRule(sid, FileSystemRights.FullControl, AccessControlType.Allow));
|
||||
|
||||
File.SetAccessControl(filename, security);
|
||||
}
|
||||
|
||||
private static void Cleanup1(string destination)
|
||||
{
|
||||
// prior to version UCA.v.1.1.9, syncronizerModel and yamlDotNet dll files were located at ProjectPath/Assets/Plugins/CodeAssist/Editor/ExternalReferences/Release/netstandard2.0
|
||||
// with version UCA.v.1.1.9 and newer versions, they are located at ProjectPath/Assets/Plugins/CodeAssist/Editor/ExternalReferences
|
||||
// delete ProjectPath/Assets/Plugins/CodeAssist/Editor/ExternalReferences/Release
|
||||
var oldBinariesDirectory = Path.Combine(destination, "Plugins/CodeAssist/Editor/ExternalReferences/Release/netstandard2.0");
|
||||
if (Directory.Exists(oldBinariesDirectory))
|
||||
{
|
||||
// dont just delete the directory for security reasons, instead delete binary files one by one
|
||||
|
||||
Serilog.Log.Debug("Old binaries directory exists at {Location}", oldBinariesDirectory);
|
||||
|
||||
var files = new string[]
|
||||
{
|
||||
"UnityCodeAssistSynchronizerModel.deps.json",
|
||||
"UnityCodeAssistSynchronizerModel.dll",
|
||||
"UnityCodeAssistSynchronizerModel.pdb",
|
||||
"UnityCodeAssistYamlDotNet.deps.json",
|
||||
"UnityCodeAssistYamlDotNet.dll",
|
||||
"UnityCodeAssistYamlDotNet.pdb",
|
||||
"UnityCodeAssistYamlDotNet.xml",
|
||||
};
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
var filePath = Path.Combine(oldBinariesDirectory, file);
|
||||
DeleteFileAndItsMeta(filePath);
|
||||
}
|
||||
|
||||
DeleteDirectoryAndItsMeta(oldBinariesDirectory);
|
||||
}
|
||||
|
||||
var oldBinariesDirectory2 = Path.Combine(destination, "Plugins/CodeAssist/Editor/ExternalReferences/Release");
|
||||
DeleteDirectoryAndItsMeta(oldBinariesDirectory2);
|
||||
|
||||
|
||||
// also delete old vsix, it's now renamed as Meryel.UnityCodeAssist.VSIX.vsix
|
||||
var oldVsixFilePath = Path.Combine(destination, "Plugins/CodeAssist/UnityCodeAssistVSIX.vsix");
|
||||
DeleteFileAndItsMeta(oldVsixFilePath);
|
||||
}
|
||||
|
||||
private static void Cleanup2(string destination)
|
||||
{
|
||||
// with version 1.1.12, dll files has been customized (renamed and changed their namespace) (so that they dont conflict with user's other dll files, if he tries to use them)
|
||||
// delete AsyncIO.dll, and use Meryel.UnityCodeAssist.AsyncIO.dll instead
|
||||
var files = new string[]
|
||||
{
|
||||
"AsyncIO.dll",
|
||||
"NaCl.dll",
|
||||
"NetMQ.dll",
|
||||
"Serilog.dll",
|
||||
"Serilog.Sinks.PersistentFile.dll",
|
||||
};
|
||||
|
||||
var binariesDirectory = Path.Combine(destination, "Plugins/CodeAssist/Editor/ExternalReferences");
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
var filePath = Path.Combine(binariesDirectory, file);
|
||||
DeleteFileAndItsMeta(filePath);
|
||||
}
|
||||
}
|
||||
|
||||
private static void Cleanup3(string destination, string solutionDirectory)
|
||||
{
|
||||
// as it turns out, .netstandard2.1 does not need system binaries (for C#9.0, unity versions 2021.2 and newer)
|
||||
|
||||
//var cSharpVersion = CommonVS.VSCommonTools.GetCSharpVersionFromUnityProjectVersionFile(solutionDirectory);
|
||||
var cSharpVersion = GetCSharpVersionFromUnityProjectVersionFile(solutionDirectory);
|
||||
if (cSharpVersion < 9)
|
||||
return;
|
||||
|
||||
var systemBinaryFiles = new string[]
|
||||
{
|
||||
"System.Buffers.dll",
|
||||
"System.Memory.dll",
|
||||
"System.Runtime.CompilerServices.Unsafe.dll",
|
||||
"System.Threading.Tasks.Extensions.dll",
|
||||
};
|
||||
|
||||
var binariesDirectory = Path.Combine(destination, "Plugins/CodeAssist/Editor/ExternalReferences");
|
||||
|
||||
foreach (var file in systemBinaryFiles)
|
||||
{
|
||||
var filePath = Path.Combine(binariesDirectory, file);
|
||||
DeleteFileAndItsMeta(filePath);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void Cleanup4(string destination)
|
||||
{
|
||||
// with version 1.2, asset directory moved from Assets/Plugins/CodeAssist to Packages/com.merry-yellow.code-assist
|
||||
// so remove all files from the old directory
|
||||
|
||||
var directory = Path.Combine(destination, "Plugins/CodeAssist/Editor");
|
||||
|
||||
var content = new string[]
|
||||
{
|
||||
@"TinyJson/JsonWriter.cs",
|
||||
@"TinyJson/JsonParser.cs",
|
||||
@"Preferences/RegistryMonitor.cs",
|
||||
@"Preferences/PreferenceStorageAccessor.cs",
|
||||
@"Preferences/PreferenceMonitor.cs",
|
||||
@"Preferences/PreferenceEntryHolder.cs",
|
||||
@"Logger/UnitySink.cs",
|
||||
@"Logger/MemorySink.cs",
|
||||
@"Logger/ELogger.cs",
|
||||
@"Logger/DomainHashEnricher.cs",
|
||||
@"Logger/CommonTools.cs",
|
||||
@"Logger/Attributes.cs",
|
||||
@"Input/UnityInputManager.cs",
|
||||
@"Input/Text2Yaml.cs",
|
||||
@"Input/InputManagerMonitor.cs",
|
||||
@"Input/Binary2TextExec.cs",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.xml",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.pdb",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.dll",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.YamlDotNet.deps.json",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.pdb",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.dll",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.SynchronizerModel.deps.json",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.xml",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.Sinks.PersistentFile.pdb",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.Sinks.PersistentFile.dll",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.Sinks.PersistentFile.deps.json",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.pdb",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.Serilog.dll",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.NetMQ.xml",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.NetMQ.pdb",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.NetMQ.dll",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.NetMQ.deps.json",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.NaCl.xml",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.NaCl.pdb",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.NaCl.dll",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.AsyncIO.pdb",
|
||||
@"ExternalReferences/Meryel.UnityCodeAssist.AsyncIO.dll",
|
||||
@"EditorCoroutines/EditorWindowCoroutineExtension.cs",
|
||||
@"EditorCoroutines/EditorWaitForSeconds.cs",
|
||||
@"EditorCoroutines/EditorCoroutineUtility.cs",
|
||||
@"EditorCoroutines/EditorCoroutine.cs",
|
||||
@"UnityClassExtensions.cs",
|
||||
@"StatusWindow.cs",
|
||||
@"ScriptFinder.cs",
|
||||
@"NetMQPublisher.cs",
|
||||
@"NetMQInitializer.cs",
|
||||
@"Monitor.cs",
|
||||
@"MerryYellow.CodeAssist.Editor.asmdef",
|
||||
@"MainThreadDispatcher.cs",
|
||||
@"LazyInitializer.cs",
|
||||
@"FeedbackWindow.cs",
|
||||
@"Assister.cs",
|
||||
@"AboutWindow.cs",
|
||||
//@"TinyJson",
|
||||
//@"Preferences",
|
||||
//@"Logger",
|
||||
//@"Input",
|
||||
//@"ExternalReferences",
|
||||
//@"EditorCoroutines",
|
||||
};
|
||||
|
||||
foreach (var c in content)
|
||||
{
|
||||
var path = Path.Combine(directory, c);
|
||||
DeleteFileAndItsMeta(path);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
11
Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs.meta
Normal file
11
Packages/com.merry-yellow.code-assist/Editor/Cleanup.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f03bf638663c69e41a0cc01055bc4ad4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 89fa2729f0a36ba4986391b4274c4756
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,157 @@
|
||||
/*
|
||||
* Derived from Unity package
|
||||
* https://docs.unity3d.com/Packages/com.unity.editorcoroutines@0.0/api/Unity.EditorCoroutines.Editor.html
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
//namespace Unity.EditorCoroutines.Editor
|
||||
namespace Meryel.UnityCodeAssist.Editor.EditorCoroutines
|
||||
{
|
||||
/// <summary>
|
||||
/// A handle to an EditorCoroutine, can be passed to <see cref="EditorCoroutineUtility">EditorCoroutineUtility</see> methods to control lifetime.
|
||||
/// </summary>
|
||||
public class EditorCoroutine
|
||||
{
|
||||
private struct YieldProcessor
|
||||
{
|
||||
enum DataType : byte
|
||||
{
|
||||
None = 0,
|
||||
WaitForSeconds = 1,
|
||||
EditorCoroutine = 2,
|
||||
AsyncOP = 3,
|
||||
}
|
||||
struct ProcessorData
|
||||
{
|
||||
public DataType type;
|
||||
public double targetTime;
|
||||
public object current;
|
||||
}
|
||||
|
||||
ProcessorData data;
|
||||
|
||||
public void Set(object yield)
|
||||
{
|
||||
if (yield == data.current)
|
||||
return;
|
||||
|
||||
var type = yield.GetType();
|
||||
var dataType = DataType.None;
|
||||
double targetTime = -1;
|
||||
|
||||
if(type == typeof(EditorWaitForSeconds))
|
||||
{
|
||||
targetTime = EditorApplication.timeSinceStartup + (yield as EditorWaitForSeconds).WaitTime;
|
||||
dataType = DataType.WaitForSeconds;
|
||||
}
|
||||
else if(type == typeof(EditorCoroutine))
|
||||
{
|
||||
dataType = DataType.EditorCoroutine;
|
||||
}
|
||||
else if(type == typeof(AsyncOperation) || type.IsSubclassOf(typeof(AsyncOperation)))
|
||||
{
|
||||
dataType = DataType.AsyncOP;
|
||||
}
|
||||
|
||||
data = new ProcessorData { current = yield, targetTime = targetTime, type = dataType };
|
||||
}
|
||||
|
||||
public bool MoveNext(IEnumerator enumerator)
|
||||
{
|
||||
var advance = data.type switch
|
||||
{
|
||||
DataType.WaitForSeconds => data.targetTime <= EditorApplication.timeSinceStartup,
|
||||
DataType.EditorCoroutine => (data.current as EditorCoroutine).m_IsDone,
|
||||
DataType.AsyncOP => (data.current as AsyncOperation).isDone,
|
||||
_ => data.current == enumerator.Current,//a IEnumerator or a plain object was passed to the implementation
|
||||
};
|
||||
if (advance)
|
||||
{
|
||||
data = default;// (ProcessorData);
|
||||
return enumerator.MoveNext();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
internal WeakReference m_Owner;
|
||||
IEnumerator m_Routine;
|
||||
YieldProcessor m_Processor;
|
||||
|
||||
bool m_IsDone;
|
||||
|
||||
internal EditorCoroutine(IEnumerator routine)
|
||||
{
|
||||
m_Owner = null;
|
||||
m_Routine = routine;
|
||||
EditorApplication.update += MoveNext;
|
||||
}
|
||||
|
||||
internal EditorCoroutine(IEnumerator routine, object owner)
|
||||
{
|
||||
m_Processor = new YieldProcessor();
|
||||
m_Owner = new WeakReference(owner);
|
||||
m_Routine = routine;
|
||||
EditorApplication.update += MoveNext;
|
||||
}
|
||||
|
||||
internal void MoveNext()
|
||||
{
|
||||
if (m_Owner != null && !m_Owner.IsAlive)
|
||||
{
|
||||
EditorApplication.update -= MoveNext;
|
||||
return;
|
||||
}
|
||||
|
||||
bool done = ProcessIEnumeratorRecursive(m_Routine);
|
||||
m_IsDone = !done;
|
||||
|
||||
if (m_IsDone)
|
||||
EditorApplication.update -= MoveNext;
|
||||
}
|
||||
|
||||
static readonly Stack<IEnumerator> kIEnumeratorProcessingStack = new Stack<IEnumerator>(32);
|
||||
private bool ProcessIEnumeratorRecursive(IEnumerator enumerator)
|
||||
{
|
||||
var root = enumerator;
|
||||
while(enumerator.Current as IEnumerator != null)
|
||||
{
|
||||
kIEnumeratorProcessingStack.Push(enumerator);
|
||||
enumerator = enumerator.Current as IEnumerator;
|
||||
}
|
||||
|
||||
//process leaf
|
||||
m_Processor.Set(enumerator.Current);
|
||||
var result = m_Processor.MoveNext(enumerator);
|
||||
|
||||
while (kIEnumeratorProcessingStack.Count > 1)
|
||||
{
|
||||
if (!result)
|
||||
{
|
||||
result = kIEnumeratorProcessingStack.Pop().MoveNext();
|
||||
}
|
||||
else
|
||||
kIEnumeratorProcessingStack.Clear();
|
||||
}
|
||||
|
||||
if (kIEnumeratorProcessingStack.Count > 0 && !result && root == kIEnumeratorProcessingStack.Pop())
|
||||
{
|
||||
result = root.MoveNext();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
internal void Stop()
|
||||
{
|
||||
m_Owner = null;
|
||||
m_Routine = null;
|
||||
EditorApplication.update -= MoveNext;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c1e3c1846518ae4da27dcaf08ef85f4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
* Derived from Unity package
|
||||
* https://docs.unity3d.com/Packages/com.unity.editorcoroutines@0.0/api/Unity.EditorCoroutines.Editor.html
|
||||
*/
|
||||
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
//namespace Unity.EditorCoroutines.Editor
|
||||
namespace Meryel.UnityCodeAssist.Editor.EditorCoroutines
|
||||
{
|
||||
public static class EditorCoroutineUtility
|
||||
{
|
||||
/// <summary>
|
||||
/// Starts an <see cref ="EditorCoroutine">EditorCoroutine</see> with the specified owner object.
|
||||
/// If the garbage collector collects the owner object, while the resulting coroutine is still executing, the coroutine will stop running.
|
||||
/// <code>
|
||||
/// using System.Collections;
|
||||
/// using Unity.EditorCoroutines.Editor;
|
||||
/// using UnityEditor;
|
||||
///
|
||||
/// public class ExampleWindow : EditorWindow
|
||||
/// {
|
||||
/// int m_Updates = 0;
|
||||
/// void OnEnable()
|
||||
/// {
|
||||
/// EditorCoroutineUtility.StartCoroutine(CountEditorUpdates(), this);
|
||||
/// }
|
||||
///
|
||||
/// IEnumerator CountEditorUpdates()
|
||||
/// {
|
||||
/// while (true)
|
||||
/// {
|
||||
/// ++m_Updates;
|
||||
/// yield return null;
|
||||
/// }
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </summary>
|
||||
/// <param name="routine"> IEnumerator to iterate over. </param>
|
||||
/// <param name="owner">Object owning the coroutine. </param>
|
||||
/// <remarks>
|
||||
/// Only types that don't inherit from <see cref="UnityEngine.Object">UnityEngine.Object</see> will get collected the next time the GC runs instead of getting null-ed immediately.
|
||||
/// </remarks>
|
||||
/// <returns>A handle to an <see cref="EditorCoroutine">EditorCoroutine</see>.</returns>
|
||||
public static EditorCoroutine StartCoroutine(IEnumerator routine, object owner)
|
||||
{
|
||||
return new EditorCoroutine(routine, owner);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method starts an <see cref="EditorCoroutine">EditorCoroutine</see> without an owning object. The <see cref="EditorCoroutine">EditorCoroutine</see> runs until it completes or is canceled using <see cref="StopCoroutine(EditorCoroutine)">StopCoroutine</see>.
|
||||
/// <code>
|
||||
/// using System.Collections;
|
||||
/// using Unity.EditorCoroutines.Editor;
|
||||
/// using UnityEditor;
|
||||
/// using UnityEngine;
|
||||
///
|
||||
/// public class ExampleWindow : EditorWindow
|
||||
/// {
|
||||
/// void OnEnable()
|
||||
/// {
|
||||
/// EditorCoroutineUtility.StartCoroutineOwnerless(LogTimeSinceStartup());
|
||||
/// }
|
||||
///
|
||||
/// IEnumerator LogTimeSinceStartup()
|
||||
/// {
|
||||
/// while (true)
|
||||
/// {
|
||||
/// Debug.LogFormat("Time since startup: {0} s", Time.realtimeSinceStartup);
|
||||
/// yield return null;
|
||||
/// }
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </summary>
|
||||
/// <param name="routine"> Generator function to execute. </param>
|
||||
/// <returns>A handle to an <see cref="EditorCoroutine">EditorCoroutine.</see></returns>
|
||||
public static EditorCoroutine StartCoroutineOwnerless(IEnumerator routine)
|
||||
{
|
||||
return new EditorCoroutine(routine);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Immediately stop an <see cref="EditorCoroutine">EditorCoroutine</see>. This method is safe to call on an already completed <see cref="EditorCoroutine">EditorCoroutine</see>.
|
||||
/// <code>
|
||||
/// using System.Collections;
|
||||
/// using Unity.EditorCoroutines.Editor;
|
||||
/// using UnityEditor;
|
||||
/// using UnityEngine;
|
||||
///
|
||||
/// public class ExampleWindow : EditorWindow
|
||||
/// {
|
||||
/// EditorCoroutine m_LoggerCoroutine;
|
||||
/// void OnEnable()
|
||||
/// {
|
||||
/// m_LoggerCoroutine = EditorCoroutineUtility.StartCoroutineOwnerless(LogRunning());
|
||||
/// }
|
||||
///
|
||||
/// void OnDisable()
|
||||
/// {
|
||||
/// EditorCoroutineUtility.StopCoroutine(m_LoggerCoroutine);
|
||||
/// }
|
||||
///
|
||||
/// IEnumerator LogRunning()
|
||||
/// {
|
||||
/// while (true)
|
||||
/// {
|
||||
/// Debug.Log("Running");
|
||||
/// yield return null;
|
||||
/// }
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </summary>
|
||||
/// <param name="coroutine">A handle to an <see cref="EditorCoroutine">EditorCoroutine.</see></param>
|
||||
public static void StopCoroutine(EditorCoroutine coroutine)
|
||||
{
|
||||
if (coroutine == null)
|
||||
{
|
||||
Serilog.Log.Warning("EditorCoroutine handle is null.");
|
||||
return;
|
||||
}
|
||||
coroutine.Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b3d162669c5693a47bf42827686f73d0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Derived from Unity package
|
||||
* https://docs.unity3d.com/Packages/com.unity.editorcoroutines@0.0/api/Unity.EditorCoroutines.Editor.html
|
||||
*/
|
||||
|
||||
//namespace Unity.EditorCoroutines.Editor
|
||||
namespace Meryel.UnityCodeAssist.Editor.EditorCoroutines
|
||||
{
|
||||
/// <summary>
|
||||
/// Suspends the <see cref="EditorCoroutine">EditorCoroutine</see> execution for the given amount of seconds, using unscaled time.
|
||||
/// The coroutine execution continues after the specified time has elapsed.
|
||||
/// <code>
|
||||
/// using System.Collections;
|
||||
/// using UnityEngine;
|
||||
/// using Unity.EditorCoroutines.Editor;
|
||||
/// using UnityEditor;
|
||||
///
|
||||
/// public class MyEditorWindow : EditorWindow
|
||||
/// {
|
||||
/// IEnumerator PrintEachSecond()
|
||||
/// {
|
||||
/// var waitForOneSecond = new EditorWaitForSeconds(1.0f);
|
||||
///
|
||||
/// while (true)
|
||||
/// {
|
||||
/// yield return waitForOneSecond;
|
||||
/// Debug.Log("Printing each second");
|
||||
/// }
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </summary>
|
||||
public class EditorWaitForSeconds
|
||||
{
|
||||
/// <summary>
|
||||
/// The time to wait in seconds.
|
||||
/// </summary>
|
||||
public float WaitTime { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a instruction object for yielding inside a generator function.
|
||||
/// </summary>
|
||||
/// <param name="time">The amount of time to wait in seconds.</param>
|
||||
public EditorWaitForSeconds(float time)
|
||||
{
|
||||
WaitTime = time;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2d8612ff14468214aad7600138a50b79
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
* Derived from Unity package
|
||||
* https://docs.unity3d.com/Packages/com.unity.editorcoroutines@0.0/api/Unity.EditorCoroutines.Editor.html
|
||||
*/
|
||||
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
//namespace Unity.EditorCoroutines.Editor
|
||||
namespace Meryel.UnityCodeAssist.Editor.EditorCoroutines
|
||||
{
|
||||
public static class EditorWindowCoroutineExtension
|
||||
{
|
||||
/// <summary>
|
||||
/// Start an <see cref="EditorCoroutine">EditorCoroutine</see>, owned by the calling <see cref="EditorWindow">EditorWindow</see> instance.
|
||||
/// <code>
|
||||
/// using System.Collections;
|
||||
/// using Unity.EditorCoroutines.Editor;
|
||||
/// using UnityEditor;
|
||||
///
|
||||
/// public class ExampleWindow : EditorWindow
|
||||
/// {
|
||||
/// void OnEnable()
|
||||
/// {
|
||||
/// this.StartCoroutine(CloseWindowDelayed());
|
||||
/// }
|
||||
///
|
||||
/// IEnumerator CloseWindowDelayed() //close the window after 1000 frames have elapsed
|
||||
/// {
|
||||
/// int count = 1000;
|
||||
/// while (count > 0)
|
||||
/// {
|
||||
/// yield return null;
|
||||
/// }
|
||||
/// Close();
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </summary>
|
||||
/// <param name="routine"></param>
|
||||
/// <returns></returns>
|
||||
public static EditorCoroutine StartCoroutine(this EditorWindow window, IEnumerator routine)
|
||||
{
|
||||
return new EditorCoroutine(routine, window);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Immediately stop an <see cref="EditorCoroutine">EditorCoroutine</see> that was started by the calling <see cref="EditorWindow"/> instance. This method is safe to call on an already completed <see cref="EditorCoroutine">EditorCoroutine</see>.
|
||||
/// <code>
|
||||
/// using System.Collections;
|
||||
/// using Unity.EditorCoroutines.Editor;
|
||||
/// using UnityEditor;
|
||||
/// using UnityEngine;
|
||||
///
|
||||
/// public class ExampleWindow : EditorWindow
|
||||
/// {
|
||||
/// EditorCoroutine coroutine;
|
||||
/// void OnEnable()
|
||||
/// {
|
||||
/// coroutine = this.StartCoroutine(CloseWindowDelayed());
|
||||
/// }
|
||||
///
|
||||
/// private void OnDisable()
|
||||
/// {
|
||||
/// this.StopCoroutine(coroutine);
|
||||
/// }
|
||||
///
|
||||
/// IEnumerator CloseWindowDelayed()
|
||||
/// {
|
||||
/// while (true)
|
||||
/// {
|
||||
/// Debug.Log("Running");
|
||||
/// yield return null;
|
||||
/// }
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </summary>
|
||||
/// <param name="coroutine"></param>
|
||||
public static void StopCoroutine(this EditorWindow window, EditorCoroutine coroutine)
|
||||
{
|
||||
if(coroutine == null)
|
||||
{
|
||||
Serilog.Log.Warning("Provided EditorCoroutine handle is null.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(coroutine.m_Owner == null)
|
||||
{
|
||||
Serilog.Log.Error("The EditorCoroutine is ownerless. Please use EditorCoroutineEditor.StopCoroutine to terminate such coroutines.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!coroutine.m_Owner.IsAlive)
|
||||
return; //The EditorCoroutine's owner was already terminated execution will cease next time it is processed
|
||||
|
||||
var owner = coroutine.m_Owner.Target as EditorWindow;
|
||||
|
||||
if (owner == null || owner != null && owner != window)
|
||||
{
|
||||
Serilog.Log.Error("The EditorCoroutine is owned by another object: {0}.", coroutine.m_Owner.Target);
|
||||
return;
|
||||
}
|
||||
|
||||
EditorCoroutineUtility.StopCoroutine(coroutine);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 64c15e0c4e36aa84193d4acb3c63afc5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b78ffde782257054289c22201b6bbc87
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,69 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 37e44dd86f563cf40a81ef1fdf1f1b54
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Editor: 1
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: x86
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: x86_64
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,69 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7d7e4808a93371242b38476718f4d4cc
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Editor: 1
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: x86
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: x86_64
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,43 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed466bfa2ad216b41acde183e7706352
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Editor: 1
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,43 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e70477d38c7ca2841971b35549d1477f
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Editor: 1
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aaca88d50145a3041a4ccab964c5793d
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6d55f65d499dd354a9c086ab6420c8f1
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfd80cce2d0a99b4ba669e989eceafe5
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4adc17866ec41ac4e9ce6c47070aeef5
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ca15dd8e239d5d6468333cbdacbb55d2
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,43 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3ff40589a33e8a2458503b2391a96a83
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
: Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Editor: 1
|
||||
Exclude Linux64: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 94a257e1b1239d94589fe96db62b03a7
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user