유니티/실습

UI 집중 - 모바일 미니게임 - 2 - 메인 화면

파란색까마귀 2022. 2. 14. 14:34

2016. 5. 21. 23:27

https://blog.naver.com/nagne2011/220715846505

 

-Unity : UI 집중 - 모바일 미니게임 - 2 - 메인 화면

16초 이번에도 마음에 들어서 동영상으로.. 주말이라 수영 다녀온 바람에 제작이 더디게 진행됬다 그래도 ...

blog.naver.com

 

16초

 

이번에도 마음에 들어서 동영상으로..

 

주말이라 수영 다녀온 바람에 제작이 더디게 진행됬다

 

그래도 아침에 바짝 해서 기본 틀은 만들어놨다

 

 

 

 

시작 NPC는 라그린네으로 결정

 

원레는 이보나를 생각했었는데 라그린네가 가장 최근에 나온 NPC라서 제일 해상도가 좋았다

 

동영상을 집중해서 보면 알겠지만

 

눈을 깜박거린다

 

그리고 가끔 표정도 짓는다

 

바로 아래 애니메이션 때문이다.

 

 

 

평소 기본 눈에서

 

코루틴을 사용하여 일정 시간마다 wink 트리거 발동, 눈 깜박이는 애니메이션으로 넘어간다

 

그리고 역시 같은 방법으로 일정시간마다 bool값인 isShy가 활성화되고 이때는 표정이 바뀐다

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using UnityEngine;
using System.Collections;
 
public class npcEyeWink : MonoBehaviour {
 
    void Start () 
    {
        StartCoroutine ("CoEyeWink");
        //코루틴 시작
    }
    
    // Update is called once per frame
    void Update () 
    {
    
    }
 
    IEnumerator CoEyeWink()
    {
        while (true
        {
            //눈 깜박이는 트리거 (wink)를 실행한다
            this.GetComponent<Animator> ().SetTrigger ("wink");
            //4초 쉬고
            yield return new WaitForSeconds (4.0f);
            //표정을 바꾸는 bool값을 변환한다 (isShy)
            this.GetComponent<Animator> ().SetBool ("isShy"true);
            //3초간 지속
            yield return new WaitForSeconds (3.0f);
            //표정을 원레대로 되돌린다
            this.GetComponent<Animator> ().SetBool ("isShy"false);
            //4초 대기
            yield return new WaitForSeconds (4.0f);
        }
    }
}
 
cs

 

 

기초적인 코르틴과 애니메이션을 조합해서 만들었다.

 

그다음 만든건 텍스트 출력

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using UnityEngine;
using System.Collections;
 
public class textSpread : MonoBehaviour {
 
    public string str = "";
    //출력할 string값 입력
    public int strNum = 0;
    //현재 출력중인 string 순서
    public float textSpeed = 1.0f;
    //텍스트 속도
    void Awake()
    {
        StartCoroutine ("TextFuntion");
        //코루틴 시작
    }
 
    void Update () 
    {
        //현재 string 순서까지 출력한다
        this.GetComponent<UILabel> ().text = str.Substring(0, strNum);
        if (strNum > str.Length) 
        {
            StopAllCoroutines();
            //출력이 끝나면 코루틴을 멈춘다
        }
    }
 
    IEnumerator TextFuntion()
    {
        while (strNum < str.Length) 
        {//현재 출력 중인 값이 string의 최대 길이보다 짧으면 계속 출력한다
            strNum++;
            yield return new WaitForSeconds (textSpeed);
            //텍스트 속도 만큼 대기
        }
    }
 
 
 
 
}
 
cs

 

NGUI에 Label과 string 함수를 이용해서 만들었다

this.GetComponent<UILabel> ().text = str.Substring(0, strNum);

 

간단하게 '0번부터 strNum' 까지 출력하도록 한뒤

strNum을 코루틴을 사용해서 일정 시간마다 하나씩 늘려나가는것

 

이러면 동영상에서 처럼 '타자 치듯' 점진적으로 글자가 써진다

 

 

 

필드 화면은 인터넷에서 구한 '티르코네일'의 인게임 스샷을

포토샵으로 수체화 필터 끼워줬다

 

양치기, 대장간, 낚시터 이미지는 직접 게임 내에서 스샷으로 찍은뒤

잘라낸뒤 테두리만 그려줬다

 

아이콘이 움직이는것도 애니메이션을 사용해서 스케일을 조절했다

 

 

728x90