코로나도 이제 조금씩은 진정되고 있는 오늘

 

유니티로 감자를 자라게 해보겠습니다.

 

우선 영상을 보겠습니다.

https://youtu.be/G_78W35p164

 

<참고>

<window 10 동영상 찍은 방법>

win + G을 누르면 윈도 화면을 찍을 수 있는 툴이 나옵니다. 그것을 이용해

영상을 촬영했습니다. 그리고 밑의 편집기를 이용해 용량을 줄였습니다. 용량이 21메가에서 0.22로 줄었습니다.

용량이 98 퍼나 줄어드네요 

 

https://www.videosmaller.com/ko/

 

온라인으로 동영상 파일 크기 줄이기, 온라인으로 동영상 압축하기 (MP4, AVI, MOV, MPEG) | VideoSmaller

온라인으로 동영상 파일 크기를 줄이고, 동영상을 압축해 보세요. 화질 저하 없이 MP4 동영상 크기를 줄이고, 동영상을 더 작게 만들어 보세요.

www.videosmaller.com

 

우선,첫 번째로 유니티의 hierarchy 창을 보겠습니다.

 

 

 

potatos란 감자들의 집합이고

potato_번호 가 감자 객체입니다.

그 안에 있는 potato_25, potato_45, potato_90 은 감자의 형태입니다.

뒤의 숫자는 감자를 심고 지난날입니다. 

 

감자 집합(potatos)에는 Check_Today라는 스크립트를 사용합니다. 

위의 스크립트(Check_Today) 특징으로 Today라는 변수를 static을 사용하여 프로그램 초기부터 객체가 생성되게 하였고

public을 사용하여 외부 모듈들도 위의 변수를 참조할 수 있게 하였습니다.

Today 변수는 모든 감자들의 성장에 영향을 미칩니다.

 

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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class check_Today : MonoBehaviour
{
    public static int Today;
    // Start is called before the first frame update
    void Start()
    {
        Debug.Log("Today: " + Today);
    }
 
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Today += 5;
            KeyDown_Space();
        }
    }
    private void KeyDown_Space()
    {
        Debug.Log("Today: " + Today);
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

 

다음으로 감자 객체(potato_01, ... , potato_06)에 Grow_up_potato라는 스크립트를 사용했습니다.

위 스크립트는 Check_Today.Today의 변수 값에 따라서 식물을 자라게 만드는 스크립트입니다.

하나의 감자 객체는 25일 된 날 감자, 45일 된날 감자, 90일 된날 감자가 들어있습니다.

초기에는 45, 90일 된 감자들은 비활성화하여 보이지 않게 하였습니다.

그리고 today값이 45가 되기 전까지는 25일 된 날 감자 크기를 키워주며

45일이 되면  45일 된 감자 형태를 활성화하고 25일 된 감자를 비활성화합니다.

이후 90일이 되기 전까지 이번에는 y축을 조금씩 성장시킵니다. 

그리고 90일이 되면 감자가 최종 성장 형태가 됩니다. 

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Grow_up_potato : MonoBehaviour
{
    int today;
    GameObject potato_25;
    GameObject potato_45;
    GameObject potato_90;
 
    // Start is called before the first frame update
    void Start()
    {
        today = 0;
        potato_25 = transform.GetChild(0).gameObject;
        potato_45 = transform.GetChild(1).gameObject;
        potato_90 = transform.GetChild(2).gameObject;
    }
 
    // Update is called once per frame
    void Update()
    {
        today = check_Today.Today;
        growing_up(today);
     
    }
 
    void growing_up(int today)
    {
        //if (today < 20)
        //{
        //    if (potato_25.activeSelf == true)
        //        potato_25.SetActive(false);
        //}
        if (today >= 0 && today < 45)
        {
            if (potato_25.activeSelf == false)
                potato_25.SetActive(true);
            float size = (float)today * 0.1f;
            float size_y = (float)today * 0.2f;
            potato_25.transform.localScale = new Vector3(size, size_y, size);
 
        }
        else if (today >= 45 && today < 90)
        {
            if (potato_25.activeSelf == true)
                potato_25.SetActive(false);
            if (potato_45.activeSelf == false)
                potato_45.SetActive(true);
 
            float size_y = ((float)today * 0.01f) + 0.3f;
            potato_45.transform.localScale = new Vector3(1, size_y, 1);
 
        }
        else if (today >= 90)
        {
            // 여기서 potato_25의 상태를 비활성화 하지 않는 이유는
            // 45~90 동안 이미 비활성화가 되었기 때문이다.
            if (potato_45.activeSelf == true)
                potato_45.SetActive(false);
            if (potato_90.activeSelf == false)
                potato_90.SetActive(true);
        }
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

감자 식물은 

현재 졸업 작품 준비중므로 공유할 수 없습니다.

+ Recent posts