키보드 Mission4 두고 콜라이더 왼쪽으로 옮겨주기
Grid Layout Group으로 정렬해줌
// 미션 시작
public void MissionStart()
{
anim.SetBool("isUp",true);
playerCtrl_script = FindObjectOfType<PlayerCtrl>();
// 숫자 랜덤 배치
for (int i = 0; i < 10; i++)
{
Sprite temp = numbers.GetChild(i).GetComponent<Image>().sprite;
int rand = Random.Range(0, 10);
numbers.GetChild(i).GetComponent<Image>().sprite = numbers.GetChild(rand).GetComponent<Image>().sprite;
numbers.GetChild(rand).GetComponent<Image>().sprite = temp;
}
}
랜덤으로 정렬해주기 위한 스크립트 작성
Mission4 스크립트
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Mission4 : MonoBehaviour
{
public Transform numbers;
// 한꺼번에 묶어놨던 numbers의 자식들을 사용
public Color blue;
Animator anim;
PlayerCtrl playerCtrl_script;
int count;
void Start()
{
anim = GetComponentInChildren<Animator>();
}
// 미션 시작
public void MissionStart()
{
anim.SetBool("isUp",true);
playerCtrl_script = FindObjectOfType<PlayerCtrl>();
// 초기화
for (int i = 0; i < numbers.childCount; i++)
{
numbers.GetChild(i).GetComponent<Image>().color = Color.white;
numbers.GetChild(i).GetComponent<Button>().enabled = true;
}
// 숫자 랜덤 배치
for (int i = 0; i < 10; i++)
{
Sprite temp = numbers.GetChild(i).GetComponent<Image>().sprite;
int rand = Random.Range(0, 10);
numbers.GetChild(i).GetComponent<Image>().sprite = numbers.GetChild(rand).GetComponent<Image>().sprite;
numbers.GetChild(rand).GetComponent<Image>().sprite = temp;
}
count = 1;
}
// 엑스버튼 누르면 호출
public void MissionCancle()
{
anim.SetBool("isUp",false);
playerCtrl_script.MissionEnd();
}
// 숫자버튼 누르면 호출
public void ClickNumber()
{
if (count.ToString() == EventSystem.current.currentSelectedGameObject.GetComponent<Image>().sprite.name)
{
// 색 변경
EventSystem.current.currentSelectedGameObject.GetComponent<Image>().color = blue;
// 버튼 비활성화
EventSystem.current.currentSelectedGameObject.GetComponent<Button>().enabled = false;
count++;
// 성공여부 체크
if (count == 11)
{
Invoke("MissionSuccess",0.2f);
}
}
}
// 미션 성공하면 호출
public void MissionSuccess()
{
MissionCancle();
}
}
확인 영상
오늘도 미니게임 미션 만들기 강의 잘 들었고 재미있었다
컴포넌트를 불러오는 줄이 길어서 위에 정의하고 작성했으면 좀 더 간단하게 작성할 수 있지 않았을까 싶다
혼자 수정해봐야겠다!
'Unity > 베어유 : 어몽어스 개발 노트' 카테고리의 다른 글
[19강] 미니게임 미션 만들기 : 전선 연결 1 (0) | 2023.01.21 |
---|---|
[18강] 미니게임 미션 만들기 : 각도 조종하기 (0) | 2023.01.20 |
[16강] 미니게임 미션 만들기 : 번호 입력 (0) | 2023.01.18 |
[15강] 미니게임 미션 만들기 : 쓰레기 버리기 2 (0) | 2023.01.17 |
[14강] 미니게임 미션 만들기 : 쓰레기 버리기 1 (0) | 2023.01.16 |