void SettingActionInspector(TutorialAction nowAction) { switch (nowAction.tutorialActionType) { case TutorialAction.EnumTutorialAction.MESSAGE: MessageInspector(nowAction); break; case TutorialAction.EnumTutorialAction.WAIT: WaitInspector(nowAction); break; case TutorialAction.EnumTutorialAction.EMOTION: EmotionInspector(nowAction); break; case TutorialAction.EnumTutorialAction.DRAW_IMAGE: DrawImage(nowAction); break; case TutorialAction.EnumTutorialAction.PRACTICE_SKILL: SetPracticeSkill(nowAction); break; case TutorialAction.EnumTutorialAction.RESET_PRACTICE: SetResetSkill(nowAction); break; case TutorialAction.EnumTutorialAction.RESCUE: Rescue(nowAction); break; } }
void EmotionInspector(TutorialAction nowAction) { SetAITarget("이모티콘 AI", nowAction); //2. 어떤이모티콘 nowAction.emoticonType = (TutorialAction.EnumEmoticon)EditorGUILayout.EnumPopup ("이모티콘 종류", nowAction.emoticonType); }
bool HasSameTypeActions(Tutorial tut, TutorialAction ac) { for (var i =0; i < tut.EventActions.Count; i++) { if (tut.EventActions[i].Event == ac.Event & tut.EventActions[i] != ac) { return true; } } return false; }
void MessageInspector(TutorialAction nowAction) { // 1. 텍스트 타입 설정 nowAction.messageSizeType = (TutorialAction.EnumMessageSize)EditorGUILayout.EnumPopup ("텍스트 창 타입", nowAction.messageSizeType); // 2. 텍스트 설정 EditorGUILayout.LabelField("텍스트 내용"); nowAction.messageText = EditorGUILayout.TextArea(nowAction.messageText); }
void DrawImage(TutorialAction nowAction) { // 1. 어떤 이미지를 보여줄건지 선택하고. nowAction.imageObject = EditorGUILayout.ObjectField("이미지 선택", nowAction.imageObject, typeof(GameObject), false) as GameObject; // 2. 어디 좌표에 이미지를 보여줄건지 선택한다. nowAction.imageXPosition = EditorGUILayout.FloatField("X축 선택", nowAction.imageXPosition); nowAction.imageYPosition = EditorGUILayout.FloatField("Y축 선택", nowAction.imageYPosition); }
void SetAITarget(string enumText, TutorialAction nowAction) { //1. 대상 nowAction.tutorialAIType = (TutorialAction.EnumTutorialAI)EditorGUILayout.EnumPopup (enumText, nowAction.tutorialAIType); // 1-1 대상을 토대로 설정 int tutorialAIType = (int)nowAction.tutorialAIType; // 1-2 대상의 오브젝트 선정 if (tutorialAIType <= tutorialAI.AI.Length - 1) { nowAction.aIObject = tutorialAI.AI[tutorialAIType]; } }
public bool IsTutorialRestricted(TutorialAction action) { if (GetComponent <TutorialPlayer>() != null) { if (action == TutorialAction.Move) { return(!GetComponent <TutorialPlayer>().can_move); } else if (action == TutorialAction.Pass) { return(!GetComponent <TutorialPlayer>().can_pass); } else { return(false); } } else { return(false); } }
public TutorialActionEvent(long tutorialId, long stepId, TutorialAction action) { this.TutorialId = tutorialId; this.StepId = stepId; this.Action = action; }
public override void OnInspectorGUI() { // 임시로 쥐로 설정한다. TutorialElement[] tutorialPlayer = tutorialGuide.mouseTutorialElements; // 1. 쥐 튜토리얼 수 받기 DynamicTutorialElement(); int count = tutorialGuide.maxMouseTutorialCount; EditorGUI.indentLevel++; for (int i = 0; i < count; i++) { EditorGUILayout.Space(); EditorGUILayout.LabelField("--- " + (i + 1) + " 번째 튜토리얼 사항" + " ---"); // 간단하게 튜토리얼 속성 사용 TutorialElement nowElement = tutorialPlayer[i]; // 조건 동적생성 DynamicTutorialCondition(nowElement); // 액션 동적생성 DynamicTutorialAction(nowElement); EditorGUILayout.Space(); EditorGUILayout.Space(); // 조건 설정 int conditionCount = nowElement.maxTutorialCondition; for (int dtc = 0; dtc < conditionCount; dtc++) { // 간단하게 사용하기 위해 정의 TutorialCondition nowCondition = nowElement.tutorialConditions[dtc]; // 1. 타입 지정 nowCondition.tutorialConditionType = (TutorialCondition.EnumTutorialCondition)EditorGUILayout.EnumPopup ("조건 정의", nowCondition.tutorialConditionType); // 2. 타입별로 인스펙터 조절 SettingConditionInspector(nowCondition); EditorGUILayout.Space(); } EditorGUILayout.Space(); EditorGUILayout.LabelField("-------------------"); EditorGUILayout.Space(); int actionCount = nowElement.maxTutorialAction; for (int dta = 0; dta < actionCount; dta++) { // 간단하게 설정하기 TutorialAction nowAction = nowElement.tutorialActions[dta]; // 1. 타입 지정 nowAction.tutorialActionType = (TutorialAction.EnumTutorialAction)EditorGUILayout.EnumPopup ("액션 정의", nowAction.tutorialActionType); // 2. 타입별로 인스펙터 조절 SettingActionInspector(nowAction); EditorGUILayout.Space(); } } EditorGUI.indentLevel--; }
public ControlTutorialInstruction(TutorialAction action) { this.Action = action; }
void WaitInspector(TutorialAction nowAction) { nowAction.waitTime = EditorGUILayout.FloatField("대기시간", nowAction.waitTime); }
void Rescue(TutorialAction nowAction) { SetAITarget("구출 설정 대상", nowAction); }
void SetResetSkill(TutorialAction nowAction) { nowAction.PracticeSkillType = (TutorialAction.EnumPracticeSkill)EditorGUILayout.EnumPopup ("리셋스킬 선택", nowAction.PracticeSkillType); }