Merge pull request 'DEG-77-튜토리얼-구현' (!14) from DEG-77-튜토리얼-구현 into main

Reviewed-on: #14
Reviewed-by: Sehyeon <sehyeon1837@gmail.com>
Reviewed-by: fiore <cjsdlf44@gmail.com>
This commit is contained in:
heain0122 2025-05-07 08:06:38 +00:00
commit 885e637119
57 changed files with 900 additions and 38 deletions

View File

@ -1,13 +0,0 @@
# 디폴트 무시된 파일
/shelf/
/workspace.xml
# Rider에서 무시된 파일
/contentModel.xml
/projectSettingsUpdater.xml
/modules.xml
/.idea.Degulleo3D116Rework.iml
# 에디터 기반 HTTP 클라이언트 요청
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

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

BIN
Assets/LIN/Animations/Drag Down Animation.anim (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f27b3abad6872c44e97912eebec8d88f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/LIN/Animations/Drag Left Animation.anim (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1508ea9e5623cf14ab2378f0cef9e4f9
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/LIN/Animations/Drag Right Animation.anim (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8702846e8ccd4b34e9e500d748366282
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/LIN/Animations/Drag Up Animation.anim (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8731d87063872e443b687cb8fde04d4d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/LIN/Animations/Finger Animator Controller.controller (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e9f04be805588144f91257ba68a51876
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/LIN/Animations/FingerImage.controller (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5905112edad17434fb13083581ef0f4f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/LIN/Animations/Touch Animation.anim (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cd99c947dee3d52458ca54e58f038438
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/LIN/Housing Copy.unity (Stored with Git LFS)

Binary file not shown.

BIN
Assets/LIN/Prefabs/JoystickPanel.prefab (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ce82122427e6b6246b822185fdb82c2e
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/LIN/Prefabs/TutorialExamplePanel.prefab (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b916de1e6eb0c5542884194f24ef6b1d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@ -0,0 +1,37 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum fingerAnimationType
{
None = 0,
Touch = 1,
DragUp = 2,
DragDown = 3,
DragRight = 4,
DragLeft = 5,
}
[RequireComponent(typeof(Animator))]
public class FingerAnimationController : MonoBehaviour
{
private static readonly int AnimationType = Animator.StringToHash("AnimationType");
public fingerAnimationType fingerAnimationType = fingerAnimationType.None;
private Animator animator;
private int _animType;
private void Awake()
{
animator = GetComponent<Animator>();
animator.SetInteger(AnimationType,(int)fingerAnimationType);
}
private void Update()
{
if ((int)fingerAnimationType == animator.GetInteger(AnimationType))
{
return;
}
animator.SetInteger(AnimationType,(int)fingerAnimationType);
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: aebdd610e1140f644acb596cc9acec39
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,15 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(InteractionAnimationPanelController))]
public class PanelTmpController : MonoBehaviour
{
InteractionAnimationPanelController interactionAnimationPanelController;
private void Awake()
{
interactionAnimationPanelController = GetComponent<InteractionAnimationPanelController>();
interactionAnimationPanelController.TutorialSleepAnimation();
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 11e12f4334717874d87ff58d5053e430
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,152 @@
using System;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
using System.Collections;
using Unity.VisualScripting;
using UnityEngine.Serialization;
using UnityEngine.Events;
public class TutorialManager : MonoBehaviour
{
[SerializeField] private TutorialStep firstStep; // 인스펙터에서 첫 단계 드래그
[Header("튜토리얼 패널 생성")]
[SerializeField] private GameObject[] tutorialPanelPrefabs;
[FormerlySerializedAs("parentObject")] public Canvas parentCanvas;
private GameObject _tutorialPanelObject;
private TutorialPanelController _tutorialPanelController;
private Coroutine _runningCoroutine;
private CanvasGroup overlay; // 화면 암전 및 입력 차단
private RectTransform targetRt;
private Canvas overlayCanvas; // RectTransformUtility를 위한 Canvas
private Action onTutorialComplete;
public void Start( )
{
StartTutorial(null);
}
public void StartTutorial(Action onTutorialEnd, int panelIndex = 0)
{
if(parentCanvas == null)
parentCanvas = FindObjectOfType(typeof(Canvas)) as Canvas;
if (parentCanvas != null)
{
overlayCanvas = parentCanvas as Canvas;
_tutorialPanelObject = Instantiate(tutorialPanelPrefabs[panelIndex], parentCanvas.GameObject().transform);
overlay = _tutorialPanelObject.GetComponent<CanvasGroup>();
_tutorialPanelController = _tutorialPanelObject.GetComponent<TutorialPanelController>();
}
if (_tutorialPanelController != null)
{
onTutorialComplete = onTutorialEnd;
overlay.alpha = 1f;
overlay.blocksRaycasts = true;
RunStep(firstStep);
}
else Debug.Log("패널 생성 실패, 튜토리얼 진행이 불가능합니다.");
}
private void RunStep(TutorialStep step)
{
if (_runningCoroutine != null) StopCoroutine(_runningCoroutine);
_runningCoroutine = StartCoroutine(RunStepCoroutine(step));
}
private IEnumerator RunStepCoroutine(TutorialStep step)
{
// 단계 시작 이벤트
step.onStepBegin?.Invoke();
// 메시지 갱신
_tutorialPanelController.setTutorialText(step.message);
float elapsed = 0f;
bool done = false;
//터치해야 할 위치가 있는지 체크
if (step.touchTargetIndex >= 0)
{
_tutorialPanelController.ShowTouchTarget(step.touchTargetIndex);
targetRt = _tutorialPanelController.touchTargets[step.touchTargetIndex].GetComponent<RectTransform>();
}
if (step.imageIndex >= 0)
{
_tutorialPanelController.ShowImage(step.imageIndex);
}
while (!done)
{
// 1) 영역 터치 체크
if (targetRt != null)
{
// 클릭 또는 터치 이벤트
bool pressed = Input.GetMouseButtonDown(0) || Input.touchCount > 0;
if (pressed)
{
Vector2 screenPos = Input.touchCount > 0
? Input.GetTouch(0).position
: (Vector2)Input.mousePosition;
// 터치 위치가 지정 RectTransform 안에 있는지 검사
if (RectTransformUtility.RectangleContainsScreenPoint(
targetRt, screenPos, overlayCanvas.worldCamera))
{
Debug.Log("타겟 터치");
targetRt = null;
_tutorialPanelController.HideTouchTarget(step.touchTargetIndex);
done = true;
}
else
{
Debug.Log("타겟이 아닌 곳 터치");
}
}
}
// 타임아웃 체크
if (step.timeout > 0f && elapsed >= step.timeout)
done = true;
elapsed += Time.deltaTime;
yield return null;
}
// 단계 완료 이벤트
step.onStepComplete?.Invoke();
if (step.imageIndex >= 0)
{
_tutorialPanelController.HideImage(step.imageIndex);
}
// 다음 단계로
if (step.nextStep != null)
RunStep(step.nextStep);
else
EndTutorial();
}
private void EndTutorial()
{
_tutorialPanelController.setTutorialText("");
overlay.alpha = 0f;
overlay.blocksRaycasts = false;
if(onTutorialComplete!=null)
{
onTutorialComplete?.Invoke();
onTutorialComplete = null;
}
if (_tutorialPanelObject == null)
return;
Destroy(_tutorialPanelObject);
_tutorialPanelController = null;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 93a1ace26bb85054ba68cb96470bd8c6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,42 @@
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
[RequireComponent(typeof(CanvasGroup))]
public class TutorialPanelController : MonoBehaviour
{
[SerializeField] private TMP_Text tutorialText;
[Header("튜토리얼 터치 타겟들")]
[SerializeField]
public GameObject[] touchTargets;
[Header("튜토리얼에서 보여줄 이미지 혹은 판넬들")]
[SerializeField] private GameObject[] images;
public void setTutorialText(string tutorialText)
{
this.tutorialText.text = tutorialText;
}
//TODO:RangeCheck
public void ShowTouchTarget(int index)
{
touchTargets[index].SetActive(true);
}
public void HideTouchTarget(int index)
{
touchTargets[index].SetActive(false);
}
public void ShowImage(int index)
{
images[index].SetActive(true);
}
public void HideImage(int index)
{
images[index].SetActive(false);
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 50f463251502b134d9b627d30c30842b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,25 @@
// TutorialStep.cs
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Serialization;
[CreateAssetMenu(fileName = "TutorialStep", menuName = "Tutorial/Tutorial Step")]
public class TutorialStep : ScriptableObject
{
[TextArea(2, 5)]
public string message; // 플레이어에게 보여줄 텍스트
public float timeout = 2f; // 0 이상이면 이 시간 경과 후 자동 완료
[Tooltip("단계별로 시작, 완료시 추가로 실행할 이벤트")]
public UnityEvent onStepBegin; // 단계 시작 시 추가로 실행할 이벤트
public UnityEvent onStepComplete; // 단계 완료 시 실행할 이벤트
[Tooltip("터치해야 할 위치가 있다면, 튜토리얼 매니저에게 인덱스 전달")]
public int touchTargetIndex=-1;
[Tooltip("보여줄 이미지가 있다면, 튜토리얼 매니저에게 인덱스 전달")]
public int imageIndex=-1;
[Tooltip("다음 단계로 넘어갈 TutorialStep, null이면 튜토리얼 종료")]
public TutorialStep nextStep;
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b22d834cf5e26e647be215074940d40e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,26 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b22d834cf5e26e647be215074940d40e, type: 3}
m_Name: TutorialStep1
m_EditorClassIdentifier:
message: "\uC9D1\uC5D0\uC11C\uB3C4 \uC2AC\uB77C\uC774\uB354\uB97C \uC870\uC791\uD574
\uCE90\uB9AD\uD130\uB97C \uC6C0\uC9C1\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4."
timeout: 0
onStepBegin:
m_PersistentCalls:
m_Calls: []
onStepComplete:
m_PersistentCalls:
m_Calls: []
touchTargetIndex: 0
imageIndex: -1
nextStep: {fileID: 11400000, guid: a6f10decfc8504843b358ab8893c01f7, type: 2}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 80e7d98a23eacbb4eab74b9a479a04e2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,27 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b22d834cf5e26e647be215074940d40e, type: 3}
m_Name: TutorialStep2
m_EditorClassIdentifier:
message: "\uCE68\uB300, \uB0C9\uC7A5\uACE0, \uD604\uAD00 \uADF8\uB9AC\uACE0 \uC8FC\uBC29\uC5D0
\uAC00\uAE4C\uC774 \uAC00\uBA74 \uADF8\uC5D0 \uC5B4\uC6B8\uB9AC\uB294 \uC0C1\uD638\uC791\uC6A9\uC744
\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."
timeout: 0
onStepBegin:
m_PersistentCalls:
m_Calls: []
onStepComplete:
m_PersistentCalls:
m_Calls: []
touchTargetIndex: 1
imageIndex: -1
nextStep: {fileID: 11400000, guid: c25f773b8e1446d45837ee656d510061, type: 2}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a6f10decfc8504843b358ab8893c01f7
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,25 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b22d834cf5e26e647be215074940d40e, type: 3}
m_Name: TutorialStep3
m_EditorClassIdentifier:
message: "\uC0C1\uD638\uC791\uC6A9 \uBC84\uD2BC\uC744 \uB20C\uB7EC \uBCF4\uC138\uC694"
timeout: 0
onStepBegin:
m_PersistentCalls:
m_Calls: []
onStepComplete:
m_PersistentCalls:
m_Calls: []
touchTargetIndex: 2
imageIndex: 0
nextStep: {fileID: 11400000, guid: 3629cede21d4bb340924cd9b1d401bb9, type: 2}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c25f773b8e1446d45837ee656d510061
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,25 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b22d834cf5e26e647be215074940d40e, type: 3}
m_Name: TutorialStep4
m_EditorClassIdentifier:
message:
timeout: 2
onStepBegin:
m_PersistentCalls:
m_Calls: []
onStepComplete:
m_PersistentCalls:
m_Calls: []
touchTargetIndex: -1
imageIndex: 1
nextStep: {fileID: 11400000, guid: e3d4da4e50044c54394663ac9e7b2afa, type: 2}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3629cede21d4bb340924cd9b1d401bb9
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,26 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b22d834cf5e26e647be215074940d40e, type: 3}
m_Name: TutorialStep5
m_EditorClassIdentifier:
message: "\uB2E4\uC591\uD55C \uC0C1\uD638\uC791\uC6A9\uC744 \uD1B5\uD574 \uB2A5\uB825\uCE58\uB97C
\uC62C\uB9AC\uACE0 \uB358\uC804\uC744 \uACF5\uB7B5\uD574\uBCF4\uC138\uC694."
timeout: 0
onStepBegin:
m_PersistentCalls:
m_Calls: []
onStepComplete:
m_PersistentCalls:
m_Calls: []
touchTargetIndex: 1
imageIndex: -1
nextStep: {fileID: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e3d4da4e50044c54394663ac9e7b2afa
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -16,6 +16,7 @@ public class InteractionAnimationPanelController : MonoBehaviour
private Coroutine _textAnimCoroutine;
private Coroutine _autoHideCoroutine;
private Canvas _parentCanvas;
public void SetDoingText(string text)
{
@ -102,5 +103,13 @@ public class InteractionAnimationPanelController : MonoBehaviour
_autoHideCoroutine = null;
}
}
public void TutorialSleepAnimation()
{
_parentCanvas = FindObjectOfType(typeof(Canvas)) as Canvas;
HousingConstants.interactions.TryGetValue(ActionType.Sleep, out var interactionTexts);
ShowAnimationPanel(ActionType.Sleep, interactionTexts.AnimationText);
}
}

8
Assets/LIN/Sprites.meta Normal file
View File

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

BIN
Assets/LIN/Sprites/Finger.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: c7de568cd24a02446b221be0785f87f3
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/LIN/Sprites/FridgeDungeonUI.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: b8c9a96772b117744ad2781240f3f8f9
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/LIN/TutorialAnimController.controller (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9b52bf42130896940b1762721509ab7d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/LIN/TutorialIndicateAnimation.anim (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cd947f5b39b9e6549885e225061e752d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -70,7 +70,7 @@ Material:
- _OutlineSoftness: 0
- _OutlineUVSpeedX: 0
- _OutlineUVSpeedY: 0
- _OutlineWidth: 0
- _OutlineWidth: 0.3
- _PerspectiveFilter: 0.875
- _Reflectivity: 10
- _ScaleRatioA: 0.8

View File

@ -1,8 +1,8 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MagicMissile : BulletBase
{
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MagicMissile : BulletBase
{
}

View File

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