Compare commits
No commits in common. "10b42cfe15495f5df20b15e2cb10ddfa4d2c11d4" and "be0193573aadd8984c55aafea8444e46177e2b2e" have entirely different histories.
10b42cfe15
...
be0193573a
@ -83,9 +83,8 @@ public class DungeonLogic : MonoBehaviour
|
|||||||
if (!isCompleted && !isFailed)
|
if (!isCompleted && !isFailed)
|
||||||
{
|
{
|
||||||
Debug.Log("던전 공략 성공~!");
|
Debug.Log("던전 공략 성공~!");
|
||||||
GameManager.Instance.ClearStage(); // 스테이지 수 증가
|
|
||||||
isCompleted = true;
|
isCompleted = true;
|
||||||
// OnDungeonSuccess?.Invoke();
|
OnDungeonSuccess?.Invoke();
|
||||||
|
|
||||||
_dungeonPanelController.SetBossHealthBar(0.0f); // 보스 체력 0 재설정
|
_dungeonPanelController.SetBossHealthBar(0.0f); // 보스 체력 0 재설정
|
||||||
|
|
||||||
@ -101,7 +100,7 @@ public class DungeonLogic : MonoBehaviour
|
|||||||
{
|
{
|
||||||
Debug.Log("던전 공략 실패~!");
|
Debug.Log("던전 공략 실패~!");
|
||||||
isFailed = true;
|
isFailed = true;
|
||||||
// OnDungeonFailure?.Invoke();
|
OnDungeonFailure?.Invoke();
|
||||||
|
|
||||||
_player.SetState(PlayerState.Dead);
|
_player.SetState(PlayerState.Dead);
|
||||||
|
|
||||||
|
BIN
Assets/KSH/DungeonTestScene.unity
(Stored with Git LFS)
BIN
Assets/KSH/DungeonTestScene.unity
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
113
Assets/LYM/Scripts/ChatWindowController.cs
Normal file
113
Assets/LYM/Scripts/ChatWindowController.cs
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using TMPro;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
public class ChatWindowController : MonoBehaviour, IPointerClickHandler
|
||||||
|
{
|
||||||
|
[SerializeField] private TMP_Text chatText;
|
||||||
|
[SerializeField] private Image clickIndicator;
|
||||||
|
|
||||||
|
private Coroutine _typingCoroutine;
|
||||||
|
private Coroutine _clickCoroutine;
|
||||||
|
private string _inputText;
|
||||||
|
private Queue<string> _inputQueue;
|
||||||
|
|
||||||
|
public delegate void OnComplete();
|
||||||
|
public OnComplete onComplete;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
Init("마무리", () =>
|
||||||
|
{
|
||||||
|
Debug.Log("대화 끝.");
|
||||||
|
});
|
||||||
|
ShowText(_inputQueue.Dequeue());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Init(string text, OnComplete onComplete)
|
||||||
|
{
|
||||||
|
_inputQueue = new Queue<string>();
|
||||||
|
_inputQueue.Enqueue("아 망했어 오늘도 지각이다!!!! 이러면 진짜 해고당할 수도 있어!!!\n어떡하지 큰일이다!!!");
|
||||||
|
_inputQueue.Enqueue("톼사하셈 ㅋ");
|
||||||
|
_inputQueue.Enqueue("톼사하셈 ㅋ");
|
||||||
|
_inputQueue.Enqueue("스킵도 가능 톼사하셈 ㅋ톼사하셈 ㅋ톼사하셈 ㅋ톼사하셈 ㅋ톼사하셈 ㅋ");
|
||||||
|
_inputQueue.Enqueue(text);
|
||||||
|
this.onComplete = onComplete;
|
||||||
|
}
|
||||||
|
|
||||||
|
//화면에 표시할 텍스트 삽입 함수
|
||||||
|
private void ShowText(string text)
|
||||||
|
{
|
||||||
|
var clickIndicatorColor = clickIndicator.color;
|
||||||
|
clickIndicatorColor.a = 1;
|
||||||
|
clickIndicator.color = clickIndicatorColor;
|
||||||
|
_inputText = text;
|
||||||
|
if (_typingCoroutine != null)
|
||||||
|
{
|
||||||
|
StopCoroutine(_typingCoroutine);
|
||||||
|
}
|
||||||
|
_typingCoroutine = StartCoroutine(TypingEffectCoroutine(_inputText));
|
||||||
|
}
|
||||||
|
|
||||||
|
//텍스트 타이핑효과 코루틴
|
||||||
|
private IEnumerator TypingEffectCoroutine(string text)
|
||||||
|
{
|
||||||
|
StringBuilder strText = new StringBuilder();
|
||||||
|
for (int i = 0; i < text.Length; i++)
|
||||||
|
{
|
||||||
|
strText.Append(text[i]);
|
||||||
|
chatText.text = strText.ToString();
|
||||||
|
yield return new WaitForSeconds(0.1f);
|
||||||
|
}
|
||||||
|
|
||||||
|
_clickCoroutine = StartCoroutine(ClickIndicatorCoroutine());
|
||||||
|
_typingCoroutine = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator ClickIndicatorCoroutine()
|
||||||
|
{
|
||||||
|
bool flag = true;
|
||||||
|
var clickIndicatorColor = clickIndicator.color;
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
clickIndicatorColor.a = flag? 0:1;
|
||||||
|
flag = !flag;
|
||||||
|
clickIndicator.color = clickIndicatorColor;
|
||||||
|
yield return new WaitForSeconds(0.5f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//대화창 클릭 시 호출 함수
|
||||||
|
public void OnPointerClick(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
if (_typingCoroutine != null)
|
||||||
|
{
|
||||||
|
StopCoroutine(_typingCoroutine);
|
||||||
|
_typingCoroutine = null;
|
||||||
|
chatText.text = _inputText;
|
||||||
|
_clickCoroutine = StartCoroutine(ClickIndicatorCoroutine());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_clickCoroutine != null)
|
||||||
|
{
|
||||||
|
StopCoroutine(_clickCoroutine);
|
||||||
|
_clickCoroutine = null;
|
||||||
|
}
|
||||||
|
if (_inputQueue.Count > 0)
|
||||||
|
{
|
||||||
|
ShowText(_inputQueue.Dequeue());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
onComplete?.Invoke();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,151 +0,0 @@
|
|||||||
{
|
|
||||||
"dialogues": [
|
|
||||||
{
|
|
||||||
"id": "fairy_intro_1",
|
|
||||||
"name": "???",
|
|
||||||
"text": "일어나라 소년, 아니 청년, ...아니 34세의 회사원... 그대의 도움이 필요하다.",
|
|
||||||
"nextId": "fairy_intro_2",
|
|
||||||
"phase": "intro"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "fairy_intro_2",
|
|
||||||
"name": "냉장고 요정",
|
|
||||||
"text": "나는 냉장고의 요정. \n이 냉장고는 세상을 멸망시킬 던전이 잠들어 있다, 그대가 부디 클리어 해주길 바란다. \n...일주일 안에!",
|
|
||||||
"nextId": "player_intro_1",
|
|
||||||
"phase": "intro"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "player_intro_1",
|
|
||||||
"name": "주인공",
|
|
||||||
"text": "...(어쩐지 감자 마켓 온도가 -99도더니...) 내가 왜",
|
|
||||||
"nextId": "fairy_intro_3",
|
|
||||||
"phase": "intro"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "fairy_intro_3",
|
|
||||||
"name": "냉장고 요정",
|
|
||||||
"text": "안 하면 냉장고 터진다.",
|
|
||||||
"nextId": "player_intro_2",
|
|
||||||
"phase": "intro"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "player_intro_2",
|
|
||||||
"name": "주인공",
|
|
||||||
"text": "안돼! 3만원에 사온 내 비X코프 냉장고가! \n(실제 냉장고 상호명과는 아무 관계 없습니다.)",
|
|
||||||
"nextId": "fairy_intro_4",
|
|
||||||
"phase": "intro"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "fairy_intro_4",
|
|
||||||
"name": "냉장고 요정",
|
|
||||||
"text": "또한 냉장고 폭파로 인한 화재가 발생할 수 있으며, 이는 부주의로 인하였기에 보험 적용에 제한이 있을 수 있습니다.",
|
|
||||||
"nextId": "player_intro_3",
|
|
||||||
"phase": "intro"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "player_intro_3",
|
|
||||||
"name": "주인공",
|
|
||||||
"text": "할 수 밖에 없잖아...!!",
|
|
||||||
"nextId": "",
|
|
||||||
"phase": "intro"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "fairy_gameplay_1",
|
|
||||||
"name": "냉장고 요정",
|
|
||||||
"text": "일주일 후 평판이 3이면 좋은 일이 발생할 지도 몰라",
|
|
||||||
"nextId": "",
|
|
||||||
"phase": "gameplay"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "fairy_gameplay_2",
|
|
||||||
"name": "냉장고 요정",
|
|
||||||
"text": "출근 한 번 안했다고 평판 2씩이나 깎는 회사가 있으려나...",
|
|
||||||
"nextId": "player_gameplay_2",
|
|
||||||
"phase": "gameplay"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "player_gameplay_2",
|
|
||||||
"name": "주인공",
|
|
||||||
"text": "(여기 있다.)",
|
|
||||||
"nextId": "",
|
|
||||||
"phase": "gameplay"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "fairy_gameplay_3",
|
|
||||||
"name": "냉장고 요정",
|
|
||||||
"text": "던전은 총 2스테이지까지 있으며 모두 클리어한다면...",
|
|
||||||
"nextId": "player_gameplay_3",
|
|
||||||
"phase": "gameplay"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "player_gameplay_3",
|
|
||||||
"name": "주인공",
|
|
||||||
"text": "한다면... 뭐지?",
|
|
||||||
"nextId": "",
|
|
||||||
"phase": "gameplay"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "fairy_end_1",
|
|
||||||
"name": "냉장고 요정",
|
|
||||||
"text": "일주일이 지났네! 수고했어! 이제 이 비스X프 냉장고는 너의 것이야!",
|
|
||||||
"nextId": "player_end_1",
|
|
||||||
"phase": "end"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "player_end_1",
|
|
||||||
"name": "주인공",
|
|
||||||
"text": "(네 도움이 없었다면 불가능했을 거야. 정말 고마워.) \n아자!!!!!!!!!",
|
|
||||||
"nextId": "fairy_end_2",
|
|
||||||
"phase": "end"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "fairy_end_2",
|
|
||||||
"name": "냉장고 요정",
|
|
||||||
"text": "네 덕분에 이 세계는 다시 평화를 되찾았어.",
|
|
||||||
"nextId": "player_end_2",
|
|
||||||
"phase": "end"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "player_end_2",
|
|
||||||
"name": "주인공",
|
|
||||||
"text": "그래... 이제 넌 어떻게 되는 거지?",
|
|
||||||
"nextId": "fairy_end_3",
|
|
||||||
"phase": "end"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "fairy_end_3",
|
|
||||||
"name": "냉장고 요정",
|
|
||||||
"text": "여기 있지...?",
|
|
||||||
"nextId": "player_end_3",
|
|
||||||
"phase": "end"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "player_end_3",
|
|
||||||
"name": "주인공",
|
|
||||||
"text": "?",
|
|
||||||
"nextId": "fairy_end_4",
|
|
||||||
"phase": "end"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "fairy_end_4",
|
|
||||||
"name": "냉장고 요정",
|
|
||||||
"text": "?",
|
|
||||||
"nextId": "player_end_4",
|
|
||||||
"phase": "end"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "player_end_4",
|
|
||||||
"name": "주인공",
|
|
||||||
"text": "... ?",
|
|
||||||
"nextId": "fairy_end_5",
|
|
||||||
"phase": "end"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "fairy_end_5",
|
|
||||||
"name": "냉장고 요정",
|
|
||||||
"text": "... GameManager.Instance.ShowCredit(GamePhase.End);",
|
|
||||||
"nextId": "",
|
|
||||||
"phase": "end"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: cac8b86426d9414c912671dbc2fa7959
|
|
||||||
timeCreated: 1745890651
|
|
@ -1,224 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using TMPro;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.EventSystems;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
using Random = UnityEngine.Random;
|
|
||||||
|
|
||||||
// 대화 데이터 클래스
|
|
||||||
[Serializable]
|
|
||||||
public class DialogueStruct
|
|
||||||
{
|
|
||||||
public string id; // 대화 고유 ID, 세이브용
|
|
||||||
public string name;
|
|
||||||
public string text;
|
|
||||||
public string nextId;
|
|
||||||
public string phase; // 단계 (intro, gameplay, end)
|
|
||||||
}
|
|
||||||
|
|
||||||
[Serializable]
|
|
||||||
public class DialogueData // 전체 데이터 클래스
|
|
||||||
{
|
|
||||||
public DialogueData()
|
|
||||||
{
|
|
||||||
dialogues = new List<DialogueStruct>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DialogueStruct> dialogues;
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum GamePhase // 단계별로 출력되는 대화가 달라짐
|
|
||||||
{
|
|
||||||
Intro, // 인트로 설명문
|
|
||||||
Gameplay, // 게임 진행 팁? 등
|
|
||||||
End // 엔딩 대화
|
|
||||||
}
|
|
||||||
|
|
||||||
public class ChatWindowController : MonoBehaviour, IPointerClickHandler
|
|
||||||
{
|
|
||||||
[SerializeField] private TMP_Text nameText;
|
|
||||||
[SerializeField] private TMP_Text chatText;
|
|
||||||
[SerializeField] private Image clickIndicator;
|
|
||||||
[SerializeField] private GameObject chatWindowObject; // 대화 종료용
|
|
||||||
[SerializeField] private AudioClip typingClip; // 타이핑 사운드
|
|
||||||
|
|
||||||
private Coroutine _typingCoroutine;
|
|
||||||
private Coroutine _clickCoroutine;
|
|
||||||
private string _inputText;
|
|
||||||
private Queue<DialogueStruct> _inputQueue;
|
|
||||||
|
|
||||||
public delegate void OnComplete();
|
|
||||||
public OnComplete onComplete;
|
|
||||||
|
|
||||||
private FairyDialogueManager _dialogueManager;
|
|
||||||
|
|
||||||
private void Awake()
|
|
||||||
{
|
|
||||||
_inputQueue = new Queue<DialogueStruct>();
|
|
||||||
chatWindowObject.SetActive(false); // 일단 비활성화로 시작
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
_dialogueManager = new FairyDialogueManager(this);
|
|
||||||
|
|
||||||
onComplete = () => {
|
|
||||||
// 대화문 종료 call back
|
|
||||||
Debug.Log("대화가 완료되었습니다.");
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// 외부 호출용 함수 (대화 시작)
|
|
||||||
public void SetGamePhase(GamePhase phase)
|
|
||||||
{
|
|
||||||
_dialogueManager.SetGamePhase(phase);
|
|
||||||
|
|
||||||
// Gameplay 상태라면 랜덤 대화 출력
|
|
||||||
if (phase == GamePhase.Gameplay) _dialogueManager.ShowRandomGameplayDialogue();
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Show and Hide
|
|
||||||
|
|
||||||
// 대화창 표시
|
|
||||||
public void ShowWindow()
|
|
||||||
{
|
|
||||||
chatWindowObject.SetActive(true);
|
|
||||||
|
|
||||||
if (_inputQueue.Count > 0)
|
|
||||||
{
|
|
||||||
ShowNextDialogue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 대화창 숨기기
|
|
||||||
public void HideWindow()
|
|
||||||
{
|
|
||||||
chatWindowObject.SetActive(false);
|
|
||||||
onComplete?.Invoke(); // 대화창 중지하며 콜백 호출
|
|
||||||
|
|
||||||
// 진행 중인 모든 코루틴 중지
|
|
||||||
if (_typingCoroutine != null)
|
|
||||||
{
|
|
||||||
StopCoroutine(_typingCoroutine);
|
|
||||||
_typingCoroutine = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_clickCoroutine != null)
|
|
||||||
{
|
|
||||||
StopCoroutine(_clickCoroutine);
|
|
||||||
_clickCoroutine = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// 대화 시퀀스 설정
|
|
||||||
public void SetDialogueSequence(List<DialogueStruct> sequence)
|
|
||||||
{
|
|
||||||
// 기존 큐 초기화
|
|
||||||
_inputQueue.Clear();
|
|
||||||
|
|
||||||
// 새 대화 시퀀스를 큐에 추가
|
|
||||||
foreach (DialogueStruct dialog in sequence)
|
|
||||||
{
|
|
||||||
_inputQueue.Enqueue(dialog);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 다음 대화 표시
|
|
||||||
private void ShowNextDialogue()
|
|
||||||
{
|
|
||||||
if (_inputQueue.Count == 0)
|
|
||||||
{
|
|
||||||
HideWindow();
|
|
||||||
onComplete?.Invoke();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
DialogueStruct dialog = _inputQueue.Dequeue();
|
|
||||||
|
|
||||||
// 이름 텍스트 업데이트
|
|
||||||
if (nameText != null)
|
|
||||||
{
|
|
||||||
nameText.text = dialog.name;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 클릭 인디케이터 활성화
|
|
||||||
var clickIndicatorColor = clickIndicator.color;
|
|
||||||
clickIndicatorColor.a = 1;
|
|
||||||
clickIndicator.color = clickIndicatorColor;
|
|
||||||
|
|
||||||
_inputText = dialog.text;
|
|
||||||
|
|
||||||
// 이전 타이핑 코루틴 중단
|
|
||||||
if (_typingCoroutine != null)
|
|
||||||
{
|
|
||||||
StopCoroutine(_typingCoroutine);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 새 타이핑 코루틴 시작
|
|
||||||
_typingCoroutine = StartCoroutine(TypingEffectCoroutine(_inputText));
|
|
||||||
}
|
|
||||||
|
|
||||||
//텍스트 타이핑효과 코루틴
|
|
||||||
private IEnumerator TypingEffectCoroutine(string text)
|
|
||||||
{
|
|
||||||
StringBuilder strText = new StringBuilder();
|
|
||||||
for (int i = 0; i < text.Length; i++)
|
|
||||||
{
|
|
||||||
strText.Append(text[i]);
|
|
||||||
chatText.text = strText.ToString();
|
|
||||||
yield return new WaitForSeconds(0.05f);
|
|
||||||
SoundManager.Instance.PlaySFX(typingClip); // 타이핑 사운드
|
|
||||||
}
|
|
||||||
|
|
||||||
_clickCoroutine = StartCoroutine(ClickIndicatorCoroutine());
|
|
||||||
_typingCoroutine = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerator ClickIndicatorCoroutine()
|
|
||||||
{
|
|
||||||
bool flag = true;
|
|
||||||
var clickIndicatorColor = clickIndicator.color;
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
clickIndicatorColor.a = flag? 0:1;
|
|
||||||
flag = !flag;
|
|
||||||
clickIndicator.color = clickIndicatorColor;
|
|
||||||
yield return new WaitForSeconds(0.5f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//대화창 클릭 시 호출 함수
|
|
||||||
public void OnPointerClick(PointerEventData eventData)
|
|
||||||
{
|
|
||||||
if (_typingCoroutine != null)
|
|
||||||
{
|
|
||||||
StopCoroutine(_typingCoroutine);
|
|
||||||
_typingCoroutine = null;
|
|
||||||
if (chatText != null) chatText.text = _inputText;
|
|
||||||
if (clickIndicator != null) _clickCoroutine = StartCoroutine(ClickIndicatorCoroutine());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (_clickCoroutine != null)
|
|
||||||
{
|
|
||||||
StopCoroutine(_clickCoroutine);
|
|
||||||
_clickCoroutine = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_inputQueue.Count > 0) // 대화가 남은 경우
|
|
||||||
{
|
|
||||||
ShowNextDialogue();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HideWindow(); // 대화 종료되면 창 닫기
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,199 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using UnityEngine;
|
|
||||||
using Random = UnityEngine.Random;
|
|
||||||
|
|
||||||
public class FairyDialogueManager
|
|
||||||
{
|
|
||||||
private ChatWindowController _chatWindow;
|
|
||||||
private string _dialogueFileName;
|
|
||||||
|
|
||||||
private GamePhase _currentGamePhase = GamePhase.Intro; // 현재 게임 단계
|
|
||||||
|
|
||||||
private DialogueData _database;
|
|
||||||
private Dictionary<string, DialogueStruct> _dialogueDict;
|
|
||||||
private Dictionary<string, List<DialogueStruct>> _phaseDialogues;
|
|
||||||
|
|
||||||
// 이미 보여준 게임플레이 대화 추적
|
|
||||||
private HashSet<string> _shownGameplayDialogueIds;
|
|
||||||
|
|
||||||
private string _fairyName = "냉장고 요정";
|
|
||||||
|
|
||||||
public FairyDialogueManager(ChatWindowController chatWindow, string dialogueFileName = "dialogue.json")
|
|
||||||
{
|
|
||||||
_chatWindow = chatWindow;
|
|
||||||
_dialogueFileName = dialogueFileName;
|
|
||||||
_shownGameplayDialogueIds = new HashSet<string>();
|
|
||||||
|
|
||||||
LoadDialogueData();
|
|
||||||
OrganizeDialogues();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 대화 데이터베이스 로드
|
|
||||||
private void LoadDialogueData()
|
|
||||||
{
|
|
||||||
string filePath = "Dialogues/" + _dialogueFileName.Replace(".json", "");
|
|
||||||
TextAsset jsonFile = Resources.Load<TextAsset>(filePath);
|
|
||||||
|
|
||||||
if (jsonFile == null)
|
|
||||||
{
|
|
||||||
Debug.LogError($"경로 오류로 인한 대화 데이터 로딩 실패 : {filePath}");
|
|
||||||
_database = new DialogueData { dialogues = new List<DialogueStruct>() };
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
_database = JsonUtility.FromJson<DialogueData>(jsonFile.text);
|
|
||||||
|
|
||||||
_dialogueDict = new Dictionary<string, DialogueStruct>(); // 대화 사전 초기화
|
|
||||||
foreach (DialogueStruct entry in _database.dialogues)
|
|
||||||
{
|
|
||||||
_dialogueDict[entry.id] = entry;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
Debug.LogError($"JSON 파싱 오류: {e.Message}");
|
|
||||||
_database = new DialogueData { dialogues = new List<DialogueStruct>() };
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 대화를 단계별로 분류
|
|
||||||
private void OrganizeDialogues()
|
|
||||||
{
|
|
||||||
_phaseDialogues = new Dictionary<string, List<DialogueStruct>>();
|
|
||||||
|
|
||||||
foreach (DialogueStruct entry in _database.dialogues)
|
|
||||||
{
|
|
||||||
// 단계별 분류
|
|
||||||
if (!_phaseDialogues.ContainsKey(entry.phase))
|
|
||||||
{
|
|
||||||
_phaseDialogues[entry.phase] = new List<DialogueStruct>();
|
|
||||||
}
|
|
||||||
_phaseDialogues[entry.phase].Add(entry);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 게임 단계 설정, GamePlay는 따로 실행
|
|
||||||
public void SetGamePhase(GamePhase phase)
|
|
||||||
{
|
|
||||||
_currentGamePhase = phase;
|
|
||||||
|
|
||||||
if (phase == GamePhase.Intro)
|
|
||||||
{
|
|
||||||
StartPhaseDialogue("intro");
|
|
||||||
}
|
|
||||||
else if (phase == GamePhase.End)
|
|
||||||
{
|
|
||||||
StartPhaseDialogue("end");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 단계별 시작 대화 찾기 및 시작
|
|
||||||
private void StartPhaseDialogue(string phaseName)
|
|
||||||
{
|
|
||||||
if (!_phaseDialogues.ContainsKey(phaseName) || _phaseDialogues[phaseName].Count == 0)
|
|
||||||
{
|
|
||||||
Debug.LogWarning($"No dialogues found for phase: {phaseName}");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 첫 대화 찾기 (요정이 먼저 말함)
|
|
||||||
DialogueStruct startEntry = _phaseDialogues[phaseName]
|
|
||||||
.FirstOrDefault(d => d.name == _fairyName && !string.IsNullOrEmpty(d.nextId));
|
|
||||||
|
|
||||||
if (startEntry == null)
|
|
||||||
{
|
|
||||||
startEntry = _phaseDialogues[phaseName][0];
|
|
||||||
}
|
|
||||||
|
|
||||||
// 대화 시퀀스 시작
|
|
||||||
StartDialogueSequence(startEntry.id);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gameplay일 때 랜덤 대화 출력
|
|
||||||
public void ShowRandomGameplayDialogue()
|
|
||||||
{
|
|
||||||
if (_currentGamePhase != GamePhase.Gameplay) return;
|
|
||||||
|
|
||||||
// 요정 대화 중 아직 보여주지 않은 것 찾기
|
|
||||||
var availableDialogues = _phaseDialogues["gameplay"]
|
|
||||||
.Where(d => d.name == _fairyName && !_shownGameplayDialogueIds.Contains(d.id))
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
// 모든 대화를 다 보여줬다면 다시 초기화
|
|
||||||
if (availableDialogues.Count == 0)
|
|
||||||
{
|
|
||||||
_shownGameplayDialogueIds.Clear();
|
|
||||||
availableDialogues = _phaseDialogues["gameplay"]
|
|
||||||
.Where(d => d.name == _fairyName)
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 랜덤 대화 선택
|
|
||||||
if (availableDialogues.Count > 0)
|
|
||||||
{
|
|
||||||
int randomIndex = Random.Range(0, availableDialogues.Count);
|
|
||||||
DialogueStruct randomDialogue = availableDialogues[randomIndex];
|
|
||||||
|
|
||||||
// 보여준 대화 기록
|
|
||||||
_shownGameplayDialogueIds.Add(randomDialogue.id);
|
|
||||||
|
|
||||||
// 대화 시퀀스 시작
|
|
||||||
StartDialogueSequence(randomDialogue.id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 대화 ID로 대화 시작
|
|
||||||
public void StartDialogueSequence(string startDialogueId)
|
|
||||||
{
|
|
||||||
if (!_dialogueDict.ContainsKey(startDialogueId)) return;
|
|
||||||
|
|
||||||
DialogueStruct startEntry = _dialogueDict[startDialogueId]; // 시작 대화
|
|
||||||
|
|
||||||
List<DialogueStruct> sequence = BuildDialogueSequence(startEntry); // 대화 시퀀스 구성
|
|
||||||
|
|
||||||
// 대화창에 대화 시퀀스 전달
|
|
||||||
_chatWindow.SetDialogueSequence(sequence);
|
|
||||||
_chatWindow.ShowWindow();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 연결된 대화 시퀀스 구성
|
|
||||||
private List<DialogueStruct> BuildDialogueSequence(DialogueStruct startEntry)
|
|
||||||
{
|
|
||||||
List<DialogueStruct> sequence = new List<DialogueStruct>();
|
|
||||||
HashSet<string> visitedIds = new HashSet<string>(); // 순환 참조 방지
|
|
||||||
|
|
||||||
DialogueStruct currentEntry = startEntry;
|
|
||||||
while (currentEntry != null && !visitedIds.Contains(currentEntry.id))
|
|
||||||
{
|
|
||||||
sequence.Add(currentEntry);
|
|
||||||
visitedIds.Add(currentEntry.id);
|
|
||||||
|
|
||||||
// 다음 대화가 없으면 종료
|
|
||||||
if (string.IsNullOrEmpty(currentEntry.nextId) ||
|
|
||||||
!_dialogueDict.ContainsKey(currentEntry.nextId))
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 다음 대화로 이동
|
|
||||||
currentEntry = _dialogueDict[currentEntry.nextId];
|
|
||||||
}
|
|
||||||
|
|
||||||
return sequence;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 특정 대화 ID로 대화 시작 (세이브/로드 시 사용)
|
|
||||||
public void StartDialogueById(string dialogueId)
|
|
||||||
{
|
|
||||||
if (_dialogueDict.ContainsKey(dialogueId))
|
|
||||||
{
|
|
||||||
StartDialogueSequence(dialogueId);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.LogError($"Dialogue ID not found: {dialogueId}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -40,7 +40,4 @@ public class GameConstants
|
|||||||
|
|
||||||
// 날짜 한계 값
|
// 날짜 한계 값
|
||||||
public static int maxDays = 7;
|
public static int maxDays = 7;
|
||||||
|
|
||||||
// 스테이지 한계 값
|
|
||||||
public static int maxStage = 3; // 기본 값 1 + 스테이지 2가지
|
|
||||||
}
|
}
|
||||||
|
@ -11,18 +11,13 @@ public partial class GameManager : Singleton<GameManager>
|
|||||||
private Canvas _canvas;
|
private Canvas _canvas;
|
||||||
|
|
||||||
// 게임 진행 상태
|
// 게임 진행 상태
|
||||||
private int currentDay = 1; // 날짜
|
private int currentDay = 1;
|
||||||
public int CurrentDay => currentDay;
|
public int CurrentDay => currentDay;
|
||||||
private int maxDays = GameConstants.maxDays;
|
private int maxDays = GameConstants.maxDays;
|
||||||
|
|
||||||
private int stageLevel = 1; // 스테이지 정보
|
|
||||||
public int StageLevel => stageLevel;
|
|
||||||
|
|
||||||
// 날짜 변경 이벤트, 추후에 UI 상의 날짜를 변경할 때 사용
|
// 날짜 변경 이벤트, 추후에 UI 상의 날짜를 변경할 때 사용
|
||||||
public event Action<int> OnDayChanged;
|
public event Action<int> OnDayChanged;
|
||||||
|
|
||||||
private ChatWindowController chatWindowController; // 대화창 컨트롤러
|
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
// 오디오 초기화
|
// 오디오 초기화
|
||||||
@ -41,23 +36,6 @@ public partial class GameManager : Singleton<GameManager>
|
|||||||
}
|
}
|
||||||
playerStats.OnDayEnded += AdvanceDay;
|
playerStats.OnDayEnded += AdvanceDay;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region 대화 관련
|
|
||||||
|
|
||||||
public void StartNPCDialogue(GamePhase phase) // intro, gameplay, end 존재
|
|
||||||
{
|
|
||||||
if(chatWindowController == null)
|
|
||||||
SetChatWindowController();
|
|
||||||
|
|
||||||
chatWindowController.SetGamePhase(phase);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SetChatWindowController()
|
|
||||||
{
|
|
||||||
chatWindowController = FindObjectOfType<ChatWindowController>();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// 날짜 진행
|
// 날짜 진행
|
||||||
public void AdvanceDay()
|
public void AdvanceDay()
|
||||||
@ -66,12 +44,19 @@ public partial class GameManager : Singleton<GameManager>
|
|||||||
OnDayChanged?.Invoke(currentDay);
|
OnDayChanged?.Invoke(currentDay);
|
||||||
|
|
||||||
// 최대 일수 도달 체크
|
// 최대 일수 도달 체크
|
||||||
if (currentDay > maxDays) // 8일차에 검사
|
if (currentDay > maxDays)
|
||||||
{
|
{
|
||||||
TriggerTimeEnding();
|
TriggerTimeEnding();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 엔딩 트리거
|
||||||
|
private void TriggerTimeEnding()
|
||||||
|
{
|
||||||
|
// TODO: 엔딩 처리 로직
|
||||||
|
Debug.Log("7일이 지나 게임이 종료됩니다.");
|
||||||
|
}
|
||||||
|
|
||||||
public void ChangeToGameScene()
|
public void ChangeToGameScene()
|
||||||
{
|
{
|
||||||
SceneManager.LoadScene("Game"); // 던전 Scene
|
SceneManager.LoadScene("Game"); // 던전 Scene
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
// 엔딩 타입 정의
|
|
||||||
public enum EndingType
|
|
||||||
{
|
|
||||||
Normal, // 던전 공략 O
|
|
||||||
Bad, // 던전 공략 X
|
|
||||||
Happy // 던전 공략 O, 평판 기본 스탯 값 * 1.5 이상
|
|
||||||
}
|
|
||||||
|
|
||||||
public partial class GameManager
|
|
||||||
{
|
|
||||||
private float happyEndReputation = 3.0f;
|
|
||||||
|
|
||||||
public void ClearStage()
|
|
||||||
{
|
|
||||||
Debug.Log($"스테이지 레벨 {stageLevel}을 클리어 하셨습니다!");
|
|
||||||
stageLevel++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 엔딩 관련 메서드. 7일차에 실행
|
|
||||||
private void TriggerTimeEnding()
|
|
||||||
{
|
|
||||||
// npc와의 마지막 대화 출력
|
|
||||||
StartNPCDialogue(GamePhase.End);
|
|
||||||
|
|
||||||
// 플레이어 상태에 따라 엔딩 판별
|
|
||||||
EndingType endingType = DetermineEnding();
|
|
||||||
|
|
||||||
// 엔딩 타입에 따라 다른 씬이나 UI 표시
|
|
||||||
switch (endingType)
|
|
||||||
{
|
|
||||||
case EndingType.Normal:
|
|
||||||
Debug.Log("던전 공략 성공");
|
|
||||||
// TODO: 엔딩 관련 패널 띄우기
|
|
||||||
break;
|
|
||||||
case EndingType.Bad:
|
|
||||||
Debug.Log("던전 공략 실패");
|
|
||||||
|
|
||||||
break;
|
|
||||||
case EndingType.Happy:
|
|
||||||
Debug.Log("던전 공략 성공과 훌륭한 평판 작");
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 던전 스테이지와 평판 수치로 엔딩 판별
|
|
||||||
private EndingType DetermineEnding()
|
|
||||||
{
|
|
||||||
if (stageLevel < GameConstants.maxStage) // 현재 스테이지 1 혹은 2
|
|
||||||
return EndingType.Bad;
|
|
||||||
|
|
||||||
if (playerStats.ReputationStat >= happyEndReputation) // 평판이 일정 수치 이상
|
|
||||||
return EndingType.Happy;
|
|
||||||
|
|
||||||
return EndingType.Normal;
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,7 +3,7 @@ using System.Collections;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
// 게임 매니저의 오디오 관련 부분 클래스
|
// 게임 매니저의 오디오 관련 부분 클래스
|
||||||
public partial class GameManager
|
public partial class GameManager : Singleton<GameManager>
|
||||||
{
|
{
|
||||||
// 오디오 클립 참조
|
// 오디오 클립 참조
|
||||||
[Header("오디오 설정")]
|
[Header("오디오 설정")]
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
{\rtf1\ansi\ansicpg949\cocoartf1404\cocoasubrtf470
|
||||||
|
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||||
|
{\colortbl;\red255\green255\blue255;}
|
||||||
|
\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
|
||||||
|
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
|
||||||
|
|
||||||
|
\f0\fs24 \cf0 Hello. It is JBoB.\
|
||||||
|
\
|
||||||
|
Thank you for purchasing a sound asset.\
|
||||||
|
\
|
||||||
|
Please cheer for better sound update.\
|
||||||
|
\
|
||||||
|
If you subscribe to YouTube, you can also get quick sound information and free sound effects.\
|
||||||
|
\
|
||||||
|
Thank you for clicking on Facebook.\
|
||||||
|
\
|
||||||
|
Soundcloud : {\field{\*\fldinst{HYPERLINK "https://soundcloud.com/user-781443130/tracks"}}{\fldrslt https://soundcloud.com/user-781443130/tracks}}\
|
||||||
|
\
|
||||||
|
YouTube : {\field{\*\fldinst{HYPERLINK "https://www.youtube.com/channel/UCiqwuzuuiIHB_s5zJZTKLuA?view_as=subscriber"}}{\fldrslt https://www.youtube.com/channel/UCiqwuzuuiIHB_s5zJZTKLuA?view_as=subscriber}}\
|
||||||
|
\
|
||||||
|
FaceBook : {\field{\*\fldinst{HYPERLINK "https://www.facebook.com/JBoB-Sound-Studio-525984941083953/"}}{\fldrslt https://www.facebook.com/JBoB-Sound-Studio-525984941083953/}}\
|
||||||
|
\
|
||||||
|
Thank you for using JBoB Sound Studio.\
|
||||||
|
\
|
||||||
|
If you have comments, please leave us on Facebook :)\
|
||||||
|
\
|
||||||
|
Or email "soundgrid17@gmail.com"}
|
@ -0,0 +1,6 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 563e2ed2456d046b7b7141a44ea6b2ad
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: cfc4230a3c9c2b24b80574293a72e411
|
guid: dfd81883413431543baf7e526cf17f78
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
@ -0,0 +1,35 @@
|
|||||||
|
{\rtf1\ansi\ansicpg949\cocoartf1404\cocoasubrtf470
|
||||||
|
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||||
|
{\colortbl;\red255\green255\blue255;}
|
||||||
|
\paperw11900\paperh16840\margl1440\margr1440\vieww22520\viewh8400\viewkind0
|
||||||
|
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
|
||||||
|
|
||||||
|
\f0\b\fs24 \cf0 JBoB Sound Pack\
|
||||||
|
\
|
||||||
|
{\field{\*\fldinst{HYPERLINK "https://www.assetstore.unity3d.com/kr/#!/content/91725"}}{\fldrslt https://www.assetstore.unity3d.com/kr/#!/content/118911}}
|
||||||
|
\b0 \
|
||||||
|
\
|
||||||
|
\pard\pardeftab720\sl280\partightenfactor0
|
||||||
|
|
||||||
|
\b \cf0 \expnd0\expndtw0\kerning0
|
||||||
|
3000+ Sound Effects With Free Future Updates! JBoB Sound Studio "JBoB Sound Pack" Pack contain royalty-free stock sound effects at a very affordable price delivered by professional sound designer with 10+ years of experierences.\
|
||||||
|
\
|
||||||
|
{\field{\*\fldinst{HYPERLINK "https://soundcloud.com/user-781443130/tracks"}}{\fldrslt \ul SoundCloud Preview!}}.\
|
||||||
|
{\field{\*\fldinst{HYPERLINK "https://docs.google.com/spreadsheets/d/12WO3Fcvfk1FTKIS73dG--FG0wlLNVNA99UBGMiSKJTk/edit?usp=sharing"}}{\fldrslt \ul Sound List Here!}}.\
|
||||||
|
{\field{\*\fldinst{HYPERLINK "https://www.youtube.com/watch?v=dPhLbWImtQ8&list=PLC9LOTRLKh6khK3iyqakPatFXsZvs1TgW"}}{\fldrslt \ul YouTube Preview!}}.\
|
||||||
|
{\field{\*\fldinst{HYPERLINK "https://www.youtube.com/channel/UCiqwuzuuiIHB_s5zJZTKLuA"}}{\fldrslt \ul JBoB Sound YouTube!}}.\
|
||||||
|
\
|
||||||
|
This sound pack features 3000+ game sounds : Magic, Spell, Sci-Fi, UI & Jingles, Ambience, Cartoon, Damage, Explosions, Axe, Sword, Arrow, Whip, Cannon, Gun, Grenade, Missile, Rocket, and SF weapons. This is a perfect collection for your game.\
|
||||||
|
If you want to improve the quality of your game, buy it right away.\
|
||||||
|
\
|
||||||
|
Feedback? Update requests? Leave your comment via email soundgrid17@gmail.com so that we can provide you with FREE updates in the future!\'a0\
|
||||||
|
\
|
||||||
|
Take your game experience to the next level with JBoB Sound Studio sound packs!\
|
||||||
|
\
|
||||||
|
Please contact us if you need your sound.\
|
||||||
|
{\field{\*\fldinst{HYPERLINK "mailto:soundgrid17@gmail.com"}}{\fldrslt \ul Email me!}}
|
||||||
|
\b0 \kerning1\expnd0\expndtw0 \
|
||||||
|
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
|
||||||
|
\cf0 \
|
||||||
|
\
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c2a73798f96d4485392f4f95eac0f77d
|
||||||
|
timeCreated: 1529159360
|
||||||
|
licenseType: Store
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/JBoB Sound Pack Demo/Bonus_s_ef_ce_tomahawk_e.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/JBoB Sound Pack Demo/Bonus_s_ef_ce_tomahawk_e.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4aba387d7f8c245979d586bbee2427ab
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 0
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/JBoB Sound Pack Demo/Bonus_s_ef_ce_tomahawk_s.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/JBoB Sound Pack Demo/Bonus_s_ef_ce_tomahawk_s.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2b1c5d30be2d149f096ac420c1a85ad6
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 0
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8f55d4d1c3dbf4eb19a1d518240fa151
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 09157173cde614220aff8db2a30d9fe5
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7122583c0598b40fd8a8460d96b7194b
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4b6f861b8190445aabe535b366214021
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 81b1f3cae4905459487d27deed592ec3
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 993f871e2933d48f4be0ff9c1bee0193
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 64bd1ca4e852e4b5cbdf4fbb5b06085b
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_ce_atfield.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_ce_atfield.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8a343cb2e5bf24d129408aa2696dd0ce
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 0
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_ce_barrier.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_ce_barrier.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 56d176135168e4788b212b0059fee63b
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 0
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_ce_mine_s.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_ce_mine_s.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7a587bc83d1cb470e828ba6410f90a75
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 0
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_ce_yororo_e.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_ce_yororo_e.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 159652fe20de54484882d0914255f574
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 0
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_ce_yororo_s.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_ce_yororo_s.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d0f3539f53bb645619a7397f1fc9e2b4
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 0
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_cm_dm_umbrella_def.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_cm_dm_umbrella_def.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a5e03bdf68a774d7bbdd11fe48caaf4c
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 0
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_cm_dm_umbrella_def2.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_cm_dm_umbrella_def2.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 17fe35ce980ef4d26b6aa57295f97cb5
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 0
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_cm_dm_umbrella_def3.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_cm_dm_umbrella_def3.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8c287f25bbea84c0588789c62f6fb47d
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 0
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_cm_dm_umbrella_open.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/Cartoon Game Sound 2.0/s_ef_cm_dm_umbrella_open.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0d9225e24b48d46068659021771a1b7c
|
||||||
|
AudioImporter:
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 1
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 0
|
||||||
|
compressionFormat: 0
|
||||||
|
quality: 0
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: feed7c503b7a69549acfe2836b78976e
|
guid: 0539ad4ce065f4f4ebd591859fca15fd
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
@ -1,8 +1,8 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 88198651338b6d8479fbcaac4ce143d7
|
guid: be8f6d7ab455f2c458be1f5cb6237c18
|
||||||
NativeFormatImporter:
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
mainObjectFileID: 11400000
|
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/DDSystem/Demo/Demo.unity
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Demo/Demo.unity
(Stored with Git LFS)
Normal file
Binary file not shown.
7
Assets/StoreAssets/DDSystem/Demo/Demo.unity.meta
Normal file
7
Assets/StoreAssets/DDSystem/Demo/Demo.unity.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2ee905b7a480ead4caaece7733a17acf
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/DDSystem/Demo/Demo_Selection.unity
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Demo/Demo_Selection.unity
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a0bd63f07d288df4a909270e4c5cd763
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/StoreAssets/DDSystem/Demo/Graphic.meta
Normal file
8
Assets/StoreAssets/DDSystem/Demo/Graphic.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5e5b542c7c8130b4a8bbd48394d0756d
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/DDSystem/Demo/Graphic/BackGround.png
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Demo/Graphic/BackGround.png
(Stored with Git LFS)
Normal file
Binary file not shown.
127
Assets/StoreAssets/DDSystem/Demo/Graphic/BackGround.png.meta
Normal file
127
Assets/StoreAssets/DDSystem/Demo/Graphic/BackGround.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cdd462abd453053419a990cea66008bb
|
||||||
|
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: 1
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 1
|
||||||
|
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: 1
|
||||||
|
- 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: 1
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 1
|
||||||
|
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/StoreAssets/DDSystem/Demo/Graphic/Happy.png
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Demo/Graphic/Happy.png
(Stored with Git LFS)
Normal file
Binary file not shown.
127
Assets/StoreAssets/DDSystem/Demo/Graphic/Happy.png.meta
Normal file
127
Assets/StoreAssets/DDSystem/Demo/Graphic/Happy.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 77fa19401d8472a498f2164bce0d7a4b
|
||||||
|
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: 1
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 1
|
||||||
|
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: 1
|
||||||
|
- 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: 1
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 1
|
||||||
|
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/StoreAssets/DDSystem/Demo/Graphic/Normal.png
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Demo/Graphic/Normal.png
(Stored with Git LFS)
Normal file
Binary file not shown.
127
Assets/StoreAssets/DDSystem/Demo/Graphic/Normal.png.meta
Normal file
127
Assets/StoreAssets/DDSystem/Demo/Graphic/Normal.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 34f96a43c2ac0804b95b2e3ab9751332
|
||||||
|
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: 1
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 1
|
||||||
|
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: 1
|
||||||
|
- 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: 1
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 1
|
||||||
|
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/StoreAssets/DDSystem/Demo/Graphic/Sa_Happy.png
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Demo/Graphic/Sa_Happy.png
(Stored with Git LFS)
Normal file
Binary file not shown.
127
Assets/StoreAssets/DDSystem/Demo/Graphic/Sa_Happy.png.meta
Normal file
127
Assets/StoreAssets/DDSystem/Demo/Graphic/Sa_Happy.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 055c44a6ee790d743bcf692c99bfef6c
|
||||||
|
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: 1
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 1
|
||||||
|
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: 1
|
||||||
|
- 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: 1
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 1
|
||||||
|
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/StoreAssets/DDSystem/Demo/Graphic/Sad.png
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Demo/Graphic/Sad.png
(Stored with Git LFS)
Normal file
Binary file not shown.
127
Assets/StoreAssets/DDSystem/Demo/Graphic/Sad.png.meta
Normal file
127
Assets/StoreAssets/DDSystem/Demo/Graphic/Sad.png.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8f01fa9aca81c9142a73bb0c759a88de
|
||||||
|
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: 1
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 1
|
||||||
|
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: 1
|
||||||
|
- 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: 1
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 1
|
||||||
|
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/StoreAssets/DDSystem/Demo/Graphic/test02.PNG
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Demo/Graphic/test02.PNG
(Stored with Git LFS)
Normal file
Binary file not shown.
127
Assets/StoreAssets/DDSystem/Demo/Graphic/test02.PNG.meta
Normal file
127
Assets/StoreAssets/DDSystem/Demo/Graphic/test02.PNG.meta
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 02ba6bee2195f46479dfe6cf1f0bf242
|
||||||
|
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: 1
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 1
|
||||||
|
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: 1
|
||||||
|
- 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: 1
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 1
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/StoreAssets/DDSystem/Demo/Scripts.meta
Normal file
8
Assets/StoreAssets/DDSystem/Demo/Scripts.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: aeeb3f547bce4be4d9bd9b5906dcca34
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
47
Assets/StoreAssets/DDSystem/Demo/Scripts/TestMessage.cs
Normal file
47
Assets/StoreAssets/DDSystem/Demo/Scripts/TestMessage.cs
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using Doublsb.Dialog;
|
||||||
|
|
||||||
|
public class TestMessage : MonoBehaviour
|
||||||
|
{
|
||||||
|
public DialogManager DialogManager;
|
||||||
|
|
||||||
|
public GameObject[] Example;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
var dialogTexts = new List<DialogData>();
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("/size:up/Hi, /size:init/my name is Li.", "Li"));
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("I am Sa. Popped out to let you know Asset can show other characters.", "Sa"));
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("This Asset, The D'Dialog System has many features.", "Li"));
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("You can easily change text /color:red/color, /color:white/and /size:up//size:up/size/size:init/ like this.", "Li", () => Show_Example(0)));
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("Just put the command in the string!", "Li", () => Show_Example(1)));
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("You can also change the character's sprite /emote:Sad/like this, /click//emote:Happy/Smile.", "Li", () => Show_Example(2)));
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("If you need an emphasis effect, /wait:0.5/wait... /click/or click command.", "Li", () => Show_Example(3)));
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("Text can be /speed:down/slow... /speed:init//speed:up/or fast.", "Li", () => Show_Example(4)));
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("You don't even need to click on the window like this.../speed:0.1/ tada!/close/", "Li", () => Show_Example(5)));
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("/speed:0.1/AND YOU CAN'T SKIP THIS SENTENCE.", "Li", () => Show_Example(6), false));
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("And here we go, the haha sound! /click//sound:haha/haha.", "Li", null, false));
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("That's it! Please check the documents. Good luck to you.", "Sa"));
|
||||||
|
|
||||||
|
DialogManager.Show(dialogTexts);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Show_Example(int index)
|
||||||
|
{
|
||||||
|
Example[index].SetActive(true);
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: e0967fea1a1fa5048b551b72f9d3bc16
|
guid: af59b715d564ae9488e8438d6860bc3b
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
@ -0,0 +1,53 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using Doublsb.Dialog;
|
||||||
|
|
||||||
|
public class TestMessage_Selection : MonoBehaviour
|
||||||
|
{
|
||||||
|
public DialogManager DialogManager;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
var dialogTexts = new List<DialogData>();
|
||||||
|
|
||||||
|
var Text1 = new DialogData("What is 2 times 5?");
|
||||||
|
Text1.SelectList.Add("Correct", "10");
|
||||||
|
Text1.SelectList.Add("Wrong", "7");
|
||||||
|
Text1.SelectList.Add("Whatever", "Why should I care?");
|
||||||
|
|
||||||
|
Text1.Callback = () => Check_Correct();
|
||||||
|
|
||||||
|
dialogTexts.Add(Text1);
|
||||||
|
|
||||||
|
DialogManager.Show(dialogTexts);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Check_Correct()
|
||||||
|
{
|
||||||
|
if(DialogManager.Result == "Correct")
|
||||||
|
{
|
||||||
|
var dialogTexts = new List<DialogData>();
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("You are right."));
|
||||||
|
|
||||||
|
DialogManager.Show(dialogTexts);
|
||||||
|
}
|
||||||
|
else if (DialogManager.Result == "Wrong")
|
||||||
|
{
|
||||||
|
var dialogTexts = new List<DialogData>();
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("You are wrong."));
|
||||||
|
|
||||||
|
DialogManager.Show(dialogTexts);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var dialogTexts = new List<DialogData>();
|
||||||
|
|
||||||
|
dialogTexts.Add(new DialogData("Right. You don't have to get the answer."));
|
||||||
|
|
||||||
|
DialogManager.Show(dialogTexts);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 5c08c5a9419d39e40b838ea04b98e85e
|
guid: 003f87aaac6bafa419ef75888f070867
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
8
Assets/StoreAssets/DDSystem/Demo/Sound.meta
Normal file
8
Assets/StoreAssets/DDSystem/Demo/Sound.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 41f81f948c943e846b221a39f95cb4eb
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/DDSystem/Demo/Sound/haha.wav
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Demo/Sound/haha.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
22
Assets/StoreAssets/DDSystem/Demo/Sound/haha.wav.meta
Normal file
22
Assets/StoreAssets/DDSystem/Demo/Sound/haha.wav.meta
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7796b54b22f7f02439fc159ff0ec2b7c
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 1
|
||||||
|
normalize: 0
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/DDSystem/Document.pdf
Normal file
BIN
Assets/StoreAssets/DDSystem/Document.pdf
Normal file
Binary file not shown.
7
Assets/StoreAssets/DDSystem/Document.pdf.meta
Normal file
7
Assets/StoreAssets/DDSystem/Document.pdf.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dd48e3ab03b351b44acfa892b24a4999
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/StoreAssets/DDSystem/Graphic.meta
Normal file
8
Assets/StoreAssets/DDSystem/Graphic.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7e225f928f2a5704b809977d3d4879f5
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/DDSystem/Graphic/NANUMSQUARER.TTF
Normal file
BIN
Assets/StoreAssets/DDSystem/Graphic/NANUMSQUARER.TTF
Normal file
Binary file not shown.
23
Assets/StoreAssets/DDSystem/Graphic/NANUMSQUARER.TTF.meta
Normal file
23
Assets/StoreAssets/DDSystem/Graphic/NANUMSQUARER.TTF.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 17634245762b6db4d8d4c494af41f721
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontName: NanumSquare
|
||||||
|
fontNames:
|
||||||
|
- NanumSquare
|
||||||
|
fallbackFontReferences:
|
||||||
|
- {fileID: 12800000, guid: 07211f32b4445044eb6e600871cd43b3, type: 3}
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
86
Assets/StoreAssets/DDSystem/Graphic/NANUM_LICENSE.txt
Normal file
86
Assets/StoreAssets/DDSystem/Graphic/NANUM_LICENSE.txt
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
Copyright (c) 2010, NAVER Corporation (https://www.navercorp.com/),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, NanumMyeongjo, Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, Naver NanumPen, Naver NanumGothicEco, NanumGothicEco, Naver NanumMyeongjoEco, NanumMyeongjoEco, Naver NanumGothicLight, NanumGothicLight, NanumBarunGothic, Naver NanumBarunGothic, NanumSquareRound, NanumBarunPen
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SIL OPEN FONT LICENSE
|
||||||
|
Version 1.1 - 26 February 2007
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[DEFINITIONS]
|
||||||
|
|
||||||
|
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting, or substituting in part or in whole any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.¡®
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[PREAMBLE]
|
||||||
|
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects,
|
||||||
|
|
||||||
|
to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold
|
||||||
|
|
||||||
|
by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works.
|
||||||
|
|
||||||
|
The fonts and derivatives, however, cannot be released under any other type of license.
|
||||||
|
|
||||||
|
The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[PERMISSION & CONDITIONS]
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
|
||||||
|
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written
|
||||||
|
|
||||||
|
permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
|
||||||
|
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
|
||||||
|
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[TERMINATION]
|
||||||
|
|
||||||
|
This license becomes null and void if any of the above conditions are not met.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[DISCLAIMER]
|
||||||
|
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 960570075744a5c40892b29a066c9b1f
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/DDSystem/Graphic/Window.png
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Graphic/Window.png
(Stored with Git LFS)
Normal file
Binary file not shown.
99
Assets/StoreAssets/DDSystem/Graphic/Window.png.meta
Normal file
99
Assets/StoreAssets/DDSystem/Graphic/Window.png.meta
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 55032ee68f7dd5e4eadb7879c77fd938
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 9
|
||||||
|
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
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -100
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: -1
|
||||||
|
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: 30, y: 30, z: 30, w: 30}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 8c702a32294a0014ca79421cbab1b0a7
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/StoreAssets/DDSystem/Prefab.meta
Normal file
8
Assets/StoreAssets/DDSystem/Prefab.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 08702a87836b9d44e920452c3b316fba
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/DDSystem/Prefab/Character.prefab
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Prefab/Character.prefab
(Stored with Git LFS)
Normal file
Binary file not shown.
7
Assets/StoreAssets/DDSystem/Prefab/Character.prefab.meta
Normal file
7
Assets/StoreAssets/DDSystem/Prefab/Character.prefab.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b1e781a67c6f97f4d9cfb50a61f30655
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/StoreAssets/DDSystem/Prefab/DialogAsset.prefab
(Stored with Git LFS)
Normal file
BIN
Assets/StoreAssets/DDSystem/Prefab/DialogAsset.prefab
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d536fa71dd00cf349a228e41212ace48
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/StoreAssets/DDSystem/Script.meta
Normal file
8
Assets/StoreAssets/DDSystem/Script.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 348466182e112ae4bbef7e0332711ee1
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
13
Assets/StoreAssets/DDSystem/Script/Character.cs
Normal file
13
Assets/StoreAssets/DDSystem/Script/Character.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace Doublsb.Dialog
|
||||||
|
{
|
||||||
|
[RequireComponent(typeof(Image))]
|
||||||
|
public class Character : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Emotion Emotion;
|
||||||
|
public AudioClip[] ChatSE;
|
||||||
|
public AudioClip[] CallSE;
|
||||||
|
}
|
||||||
|
}
|
11
Assets/StoreAssets/DDSystem/Script/Character.cs.meta
Normal file
11
Assets/StoreAssets/DDSystem/Script/Character.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2255e66b58bcfa24f9911b3ed2d2488f
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
398
Assets/StoreAssets/DDSystem/Script/DialogBase.cs
Normal file
398
Assets/StoreAssets/DDSystem/Script/DialogBase.cs
Normal file
@ -0,0 +1,398 @@
|
|||||||
|
/*
|
||||||
|
The MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 DoublSB
|
||||||
|
https://github.com/DoublSB/UnityDialogAsset
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using System;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using UnityEngine.Events;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace Doublsb.Dialog
|
||||||
|
{
|
||||||
|
#region Enum
|
||||||
|
public enum State
|
||||||
|
{
|
||||||
|
Active,
|
||||||
|
Wait,
|
||||||
|
Deactivate
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Command
|
||||||
|
{
|
||||||
|
print,
|
||||||
|
color,
|
||||||
|
emote,
|
||||||
|
size,
|
||||||
|
sound,
|
||||||
|
speed,
|
||||||
|
click,
|
||||||
|
close,
|
||||||
|
wait
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum TextColor
|
||||||
|
{
|
||||||
|
aqua,
|
||||||
|
black,
|
||||||
|
blue,
|
||||||
|
brown,
|
||||||
|
cyan,
|
||||||
|
darkblue,
|
||||||
|
fuchsia,
|
||||||
|
green,
|
||||||
|
grey,
|
||||||
|
lightblue,
|
||||||
|
lime,
|
||||||
|
magenta,
|
||||||
|
maroon,
|
||||||
|
navy,
|
||||||
|
olive,
|
||||||
|
orange,
|
||||||
|
purple,
|
||||||
|
red,
|
||||||
|
silver,
|
||||||
|
teal,
|
||||||
|
white,
|
||||||
|
yellow
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Emotion
|
||||||
|
[Serializable]
|
||||||
|
public class Emotion
|
||||||
|
{
|
||||||
|
//================================================
|
||||||
|
//Public Variable
|
||||||
|
//================================================
|
||||||
|
private Dictionary<string, Sprite> _data;
|
||||||
|
public Dictionary<string, Sprite> Data
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_data == null) _init_emotionList();
|
||||||
|
return _data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string[] _emotion = new string[] { "Normal" };
|
||||||
|
public Sprite[] _sprite;
|
||||||
|
|
||||||
|
//================================================
|
||||||
|
//Private Method
|
||||||
|
//================================================
|
||||||
|
private void _init_emotionList()
|
||||||
|
{
|
||||||
|
_data = new Dictionary<string, Sprite>();
|
||||||
|
|
||||||
|
if (_emotion.Length != _sprite.Length)
|
||||||
|
Debug.LogError("Emotion and Sprite have different lengths");
|
||||||
|
|
||||||
|
for (int i = 0; i < _emotion.Length; i++)
|
||||||
|
_data.Add(_emotion[i], _sprite[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Convert string to Data. Contains List of DialogCommand and DialogFormat.
|
||||||
|
/// </summary>
|
||||||
|
public class DialogData
|
||||||
|
{
|
||||||
|
//================================================
|
||||||
|
//Public Variable
|
||||||
|
//================================================
|
||||||
|
public string Character;
|
||||||
|
public List<DialogCommand> Commands = new List<DialogCommand>();
|
||||||
|
public DialogSelect SelectList = new DialogSelect();
|
||||||
|
public DialogFormat Format = new DialogFormat();
|
||||||
|
|
||||||
|
public string PrintText = string.Empty;
|
||||||
|
|
||||||
|
public bool isSkippable = true;
|
||||||
|
public UnityAction Callback = null;
|
||||||
|
|
||||||
|
//================================================
|
||||||
|
//Public Method
|
||||||
|
//================================================
|
||||||
|
public DialogData(string originalString, string character = "", UnityAction callback = null, bool isSkipable = true)
|
||||||
|
{
|
||||||
|
_convert(originalString);
|
||||||
|
|
||||||
|
this.isSkippable = isSkipable;
|
||||||
|
this.Callback = callback;
|
||||||
|
this.Character = character;
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================
|
||||||
|
//Private Method
|
||||||
|
//================================================
|
||||||
|
private void _convert(string originalString)
|
||||||
|
{
|
||||||
|
string printText = string.Empty;
|
||||||
|
|
||||||
|
for (int i = 0; i < originalString.Length; i++)
|
||||||
|
{
|
||||||
|
if (originalString[i] != '/') printText += originalString[i];
|
||||||
|
|
||||||
|
else // If find '/'
|
||||||
|
{
|
||||||
|
// Convert last printText to command
|
||||||
|
if (printText != string.Empty)
|
||||||
|
{
|
||||||
|
Commands.Add(new DialogCommand(Command.print, printText));
|
||||||
|
printText = string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Substring /CommandSyntex/
|
||||||
|
var nextSlashIndex = originalString.IndexOf('/', i + 1);
|
||||||
|
string commandSyntex = originalString.Substring(i + 1, nextSlashIndex - i - 1);
|
||||||
|
|
||||||
|
// Add converted command
|
||||||
|
var com = _convert_Syntex_To_Command(commandSyntex);
|
||||||
|
if (com != null) Commands.Add(com);
|
||||||
|
|
||||||
|
// Move i
|
||||||
|
i = nextSlashIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (printText != string.Empty) Commands.Add(new DialogCommand(Command.print, printText));
|
||||||
|
}
|
||||||
|
|
||||||
|
private DialogCommand _convert_Syntex_To_Command(string text)
|
||||||
|
{
|
||||||
|
var spliter = text.Split(':');
|
||||||
|
|
||||||
|
Command command;
|
||||||
|
if (Enum.TryParse(spliter[0], out command))
|
||||||
|
{
|
||||||
|
if (spliter.Length >= 2) return new DialogCommand(command, spliter[1]);
|
||||||
|
else return new DialogCommand(command);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Debug.LogError("Cannot parse to commands");
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// You can get RichText tagger of size and color.
|
||||||
|
/// </summary>
|
||||||
|
public class DialogFormat
|
||||||
|
{
|
||||||
|
//================================================
|
||||||
|
//Private Variable
|
||||||
|
//================================================
|
||||||
|
public string DefaultSize = "60";
|
||||||
|
private string _defaultColor = "white";
|
||||||
|
|
||||||
|
private string _color;
|
||||||
|
private string _size;
|
||||||
|
|
||||||
|
|
||||||
|
//================================================
|
||||||
|
//Public Method
|
||||||
|
//================================================
|
||||||
|
public DialogFormat(string defaultSize = "", string defaultColor = "")
|
||||||
|
{
|
||||||
|
_color = string.Empty;
|
||||||
|
_size = string.Empty;
|
||||||
|
|
||||||
|
if (defaultSize != string.Empty) DefaultSize = defaultSize;
|
||||||
|
if (defaultColor != string.Empty) _defaultColor = defaultColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Color
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (isColorValid(value))
|
||||||
|
{
|
||||||
|
_color = value;
|
||||||
|
if (_size == string.Empty) _size = DefaultSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get => _color;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Size
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (isSizeValid(value))
|
||||||
|
{
|
||||||
|
_size = value;
|
||||||
|
if (_color == string.Empty) _color = _defaultColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get => _size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string OpenTagger
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (isValid) return $"<color={Color}><size={Size}>";
|
||||||
|
else return string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string CloseTagger
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (isValid) return "</size></color>";
|
||||||
|
else return string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Resize(string command)
|
||||||
|
{
|
||||||
|
if (_size == string.Empty) Size = DefaultSize;
|
||||||
|
|
||||||
|
switch (command)
|
||||||
|
{
|
||||||
|
case "up":
|
||||||
|
_size = (int.Parse(_size) + 10).ToString();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "down":
|
||||||
|
_size = (int.Parse(_size) - 10).ToString();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "init":
|
||||||
|
_size = DefaultSize;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
_size = command;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================
|
||||||
|
//Private Method
|
||||||
|
//================================================
|
||||||
|
private bool isValid
|
||||||
|
{
|
||||||
|
get => _color != string.Empty && _size != string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool isColorValid(string Color)
|
||||||
|
{
|
||||||
|
TextColor textColor;
|
||||||
|
Regex hexColor = new Regex("^#(?:[0-9a-fA-F]{3}){1,2}$");
|
||||||
|
|
||||||
|
return Enum.TryParse(Color, out textColor) || hexColor.Match(Color).Success;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool isSizeValid(string Size)
|
||||||
|
{
|
||||||
|
float size;
|
||||||
|
return float.TryParse(Size, out size);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DialogCommand
|
||||||
|
{
|
||||||
|
public Command Command;
|
||||||
|
public string Context;
|
||||||
|
|
||||||
|
public DialogCommand(Command command, string context = "")
|
||||||
|
{
|
||||||
|
Command = command;
|
||||||
|
Context = context;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DialogSelect
|
||||||
|
{
|
||||||
|
private List<DialogSelectItem> ItemList;
|
||||||
|
|
||||||
|
public DialogSelect()
|
||||||
|
{
|
||||||
|
ItemList = new List<DialogSelectItem>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Count
|
||||||
|
{
|
||||||
|
get => ItemList.Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSelectItem GetByIndex(int index)
|
||||||
|
{
|
||||||
|
return ItemList[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<DialogSelectItem> Get_List()
|
||||||
|
{
|
||||||
|
return ItemList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Get_Value(string Key)
|
||||||
|
{
|
||||||
|
return ItemList.Find((var) => var.isSameKey(Key)).Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Clear()
|
||||||
|
{
|
||||||
|
ItemList.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Add(string Key, string Value)
|
||||||
|
{
|
||||||
|
ItemList.Add(new DialogSelectItem(Key, Value));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Remove(string Key)
|
||||||
|
{
|
||||||
|
var item = ItemList.Find((var) => var.isSameKey(Key));
|
||||||
|
|
||||||
|
if (item != null) ItemList.Remove(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DialogSelectItem
|
||||||
|
{
|
||||||
|
public string Key;
|
||||||
|
public string Value;
|
||||||
|
|
||||||
|
public bool isSameKey(string key)
|
||||||
|
{
|
||||||
|
return Key == key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSelectItem(string key, string value)
|
||||||
|
{
|
||||||
|
this.Key = key;
|
||||||
|
this.Value = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user