DEG-77-튜토리얼-구현 #14
13
.idea/.idea.Degulleo3D116Rework/.idea/.gitignore
generated
vendored
13
.idea/.idea.Degulleo3D116Rework/.idea/.gitignore
generated
vendored
@ -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
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="UserContentModel">
|
||||
<attachedFolders />
|
||||
<explicitIncludes />
|
||||
<explicitExcludes />
|
||||
</component>
|
||||
</project>
|
6
.idea/.idea.Degulleo3D116Rework/.idea/vcs.xml
generated
6
.idea/.idea.Degulleo3D116Rework/.idea/vcs.xml
generated
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
8
Assets/LIN/Animations.meta
Normal file
8
Assets/LIN/Animations.meta
Normal 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
BIN
Assets/LIN/Animations/Drag Down Animation.anim
(Stored with Git LFS)
Normal file
Binary file not shown.
8
Assets/LIN/Animations/Drag Down Animation.anim.meta
Normal file
8
Assets/LIN/Animations/Drag Down Animation.anim.meta
Normal 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
BIN
Assets/LIN/Animations/Drag Left Animation.anim
(Stored with Git LFS)
Normal file
Binary file not shown.
8
Assets/LIN/Animations/Drag Left Animation.anim.meta
Normal file
8
Assets/LIN/Animations/Drag Left Animation.anim.meta
Normal 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
BIN
Assets/LIN/Animations/Drag Right Animation.anim
(Stored with Git LFS)
Normal file
Binary file not shown.
8
Assets/LIN/Animations/Drag Right Animation.anim.meta
Normal file
8
Assets/LIN/Animations/Drag Right Animation.anim.meta
Normal 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
BIN
Assets/LIN/Animations/Drag Up Animation.anim
(Stored with Git LFS)
Normal file
Binary file not shown.
8
Assets/LIN/Animations/Drag Up Animation.anim.meta
Normal file
8
Assets/LIN/Animations/Drag Up Animation.anim.meta
Normal 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
BIN
Assets/LIN/Animations/Finger Animator Controller.controller
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -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
BIN
Assets/LIN/Animations/FingerImage.controller
(Stored with Git LFS)
Normal file
Binary file not shown.
8
Assets/LIN/Animations/FingerImage.controller.meta
Normal file
8
Assets/LIN/Animations/FingerImage.controller.meta
Normal 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
BIN
Assets/LIN/Animations/Touch Animation.anim
(Stored with Git LFS)
Normal file
Binary file not shown.
8
Assets/LIN/Animations/Touch Animation.anim.meta
Normal file
8
Assets/LIN/Animations/Touch Animation.anim.meta
Normal 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)
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
BIN
Assets/LIN/Prefabs/JoystickPanel.prefab
(Stored with Git LFS)
Normal file
Binary file not shown.
7
Assets/LIN/Prefabs/JoystickPanel.prefab.meta
Normal file
7
Assets/LIN/Prefabs/JoystickPanel.prefab.meta
Normal 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
BIN
Assets/LIN/Prefabs/TutorialExamplePanel.prefab
(Stored with Git LFS)
Normal file
Binary file not shown.
7
Assets/LIN/Prefabs/TutorialExamplePanel.prefab.meta
Normal file
7
Assets/LIN/Prefabs/TutorialExamplePanel.prefab.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b916de1e6eb0c5542884194f24ef6b1d
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/LIN/Scripts/Tutorial.meta
Normal file
8
Assets/LIN/Scripts/Tutorial.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4153e2ad34614334a86d1fc810eaed5e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
37
Assets/LIN/Scripts/Tutorial/FingerAnimationController.cs
Normal file
37
Assets/LIN/Scripts/Tutorial/FingerAnimationController.cs
Normal 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);
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aebdd610e1140f644acb596cc9acec39
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
15
Assets/LIN/Scripts/Tutorial/PanelTmpController.cs
Normal file
15
Assets/LIN/Scripts/Tutorial/PanelTmpController.cs
Normal 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();
|
||||
}
|
||||
}
|
11
Assets/LIN/Scripts/Tutorial/PanelTmpController.cs.meta
Normal file
11
Assets/LIN/Scripts/Tutorial/PanelTmpController.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 11e12f4334717874d87ff58d5053e430
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
152
Assets/LIN/Scripts/Tutorial/TutorialManager.cs
Normal file
152
Assets/LIN/Scripts/Tutorial/TutorialManager.cs
Normal 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;
|
||||
}
|
||||
}
|
11
Assets/LIN/Scripts/Tutorial/TutorialManager.cs.meta
Normal file
11
Assets/LIN/Scripts/Tutorial/TutorialManager.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93a1ace26bb85054ba68cb96470bd8c6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
42
Assets/LIN/Scripts/Tutorial/TutorialPanelController.cs
Normal file
42
Assets/LIN/Scripts/Tutorial/TutorialPanelController.cs
Normal 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);
|
||||
}
|
||||
|
||||
}
|
11
Assets/LIN/Scripts/Tutorial/TutorialPanelController.cs.meta
Normal file
11
Assets/LIN/Scripts/Tutorial/TutorialPanelController.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50f463251502b134d9b627d30c30842b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
25
Assets/LIN/Scripts/Tutorial/TutorialStep.cs
Normal file
25
Assets/LIN/Scripts/Tutorial/TutorialStep.cs
Normal 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;
|
||||
}
|
11
Assets/LIN/Scripts/Tutorial/TutorialStep.cs.meta
Normal file
11
Assets/LIN/Scripts/Tutorial/TutorialStep.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b22d834cf5e26e647be215074940d40e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
26
Assets/LIN/Scripts/Tutorial/TutorialStep1.asset
Normal file
26
Assets/LIN/Scripts/Tutorial/TutorialStep1.asset
Normal 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}
|
8
Assets/LIN/Scripts/Tutorial/TutorialStep1.asset.meta
Normal file
8
Assets/LIN/Scripts/Tutorial/TutorialStep1.asset.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 80e7d98a23eacbb4eab74b9a479a04e2
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
27
Assets/LIN/Scripts/Tutorial/TutorialStep2.asset
Normal file
27
Assets/LIN/Scripts/Tutorial/TutorialStep2.asset
Normal 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}
|
8
Assets/LIN/Scripts/Tutorial/TutorialStep2.asset.meta
Normal file
8
Assets/LIN/Scripts/Tutorial/TutorialStep2.asset.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a6f10decfc8504843b358ab8893c01f7
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
25
Assets/LIN/Scripts/Tutorial/TutorialStep3.asset
Normal file
25
Assets/LIN/Scripts/Tutorial/TutorialStep3.asset
Normal 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}
|
8
Assets/LIN/Scripts/Tutorial/TutorialStep3.asset.meta
Normal file
8
Assets/LIN/Scripts/Tutorial/TutorialStep3.asset.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c25f773b8e1446d45837ee656d510061
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
25
Assets/LIN/Scripts/Tutorial/TutorialStep4.asset
Normal file
25
Assets/LIN/Scripts/Tutorial/TutorialStep4.asset
Normal 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}
|
8
Assets/LIN/Scripts/Tutorial/TutorialStep4.asset.meta
Normal file
8
Assets/LIN/Scripts/Tutorial/TutorialStep4.asset.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3629cede21d4bb340924cd9b1d401bb9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
26
Assets/LIN/Scripts/Tutorial/TutorialStep5.asset
Normal file
26
Assets/LIN/Scripts/Tutorial/TutorialStep5.asset
Normal 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}
|
8
Assets/LIN/Scripts/Tutorial/TutorialStep5.asset.meta
Normal file
8
Assets/LIN/Scripts/Tutorial/TutorialStep5.asset.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e3d4da4e50044c54394663ac9e7b2afa
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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
8
Assets/LIN/Sprites.meta
Normal 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
BIN
Assets/LIN/Sprites/Finger.png
(Stored with Git LFS)
Normal file
Binary file not shown.
114
Assets/LIN/Sprites/Finger.png.meta
Normal file
114
Assets/LIN/Sprites/Finger.png.meta
Normal 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
BIN
Assets/LIN/Sprites/FridgeDungeonUI.png
(Stored with Git LFS)
Normal file
Binary file not shown.
114
Assets/LIN/Sprites/FridgeDungeonUI.png.meta
Normal file
114
Assets/LIN/Sprites/FridgeDungeonUI.png.meta
Normal 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
BIN
Assets/LIN/TutorialAnimController.controller
(Stored with Git LFS)
Normal file
Binary file not shown.
8
Assets/LIN/TutorialAnimController.controller.meta
Normal file
8
Assets/LIN/TutorialAnimController.controller.meta
Normal 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
BIN
Assets/LIN/TutorialIndicateAnimation.anim
(Stored with Git LFS)
Normal file
Binary file not shown.
8
Assets/LIN/TutorialIndicateAnimation.anim.meta
Normal file
8
Assets/LIN/TutorialIndicateAnimation.anim.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cd947f5b39b9e6549885e225061e752d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -70,7 +70,7 @@ Material:
|
||||
- _OutlineSoftness: 0
|
||||
- _OutlineUVSpeedX: 0
|
||||
- _OutlineUVSpeedY: 0
|
||||
- _OutlineWidth: 0
|
||||
- _OutlineWidth: 0.3
|
||||
- _PerspectiveFilter: 0.875
|
||||
- _Reflectivity: 10
|
||||
- _ScaleRatioA: 0.8
|
||||
|
@ -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
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfd81883413431543baf7e526cf17f78
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
x
Reference in New Issue
Block a user
여기서 대체 무슨 일이....
제가 중간에 메인을 풀하려다가 취소하려다가 다시 메인을 풀해서 몇몇 파일이 두번씩 써지면서 .. 뭔가 벌어졌던 것 같습니다.