Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
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
Archives
Today
Total
관리 메뉴

행복한 개구리

Unity 21.04.09.수업내용 본문

Unity/수업내용

Unity 21.04.09.수업내용

HappyFrog 2021. 4. 9. 13:19

3DProject02

프리팹의 스크립트는 처음에 EmptyObject로 만든 상위오브젝트에 할당한다.

Hero의 업데이트에 있는 Idle애니메이션이 실행될 때 자꾸 다른 애니메이션을 덮어버린다.

1.Idle을 메서드로 만들려고 했으나 그러면 한번 실행되고 끝이므로 특정 지점으로 이동한 뒤 캐릭터는 Idle애니메이션이 끝나면 아무런 애니메이션을 출력하지 않게 된다고 생각되서 일단 pass.

 

============================================================================

오브젝트들을 Level에 귀속시킴.

Player캡슐 생성 후 rigidbody적용, material적용

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public Rigidbody playerRigidbody;
    public float speed = 0.8f;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            this.transform.Translate(-this.speed, 0, 0);
        }
        if (Input.GetKey(KeyCode.RightArrow))
        {
            this.transform.Translate(this.speed, 0, 0);
        }
        if (Input.GetKey(KeyCode.UpArrow))
        {
            this.transform.Translate(0, 0, this.speed);
        }
        if (Input.GetKey(KeyCode.DownArrow))
        {
            this.transform.Translate(0, 0, -this.speed);
        }

    }
}

입력키에 따라 speed만큼 이동하도록 코드 작성

============================================================================

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Test : MonoBehaviour
{
    public Button btn;
    // Start is called before the first frame update
    void Start()
    {
        var highScore = PlayerPrefs.GetInt("highScore");
        Debug.LogFormat("highScore: {0}", highScore);

        this.btn.onClick.AddListener(() =>
        {           
            Debug.Log("save");
            PlayerPrefs.SetInt("highScore", 1000);
        });
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

정보 저장하는 방법

============================================================================

벡터는 위치, 방향, 회전, 속도, 크기등에서 사용

벡터의 종류 (요소, 요소)

ㄴ 수 벡터 

ㄴ 기하 벡터 

 

벡터 : 방향, 크기

상대좌표 : 현재 좌표에서 나의 좌표

절대좌표 : 게임세상(월드)속에서 나의 좌표

 

벡터의 곱 : 스칼라 곱

벡터의 길이가 늘어난다 (요소의 곱)

ㄴex) (-3, 4) * 2 = (-6, 8)

 

크기가 1인 벡터 : 단위 벡터 (방향 벡터)

Vector3.forward(0, 0, 1) = 절대좌표의 forward(자신이 어느 좌표에 있어도 (0, 0, 1)이 앞.

!= transform.forward

 

벡터의 합 : 요소의 합

A (2, 3) + B(1, 2) = (3, 5)

B(1, 2) - A(2, 3) = (-1, -1)

 

벡터

방향의 정규화

ㄴ normarlized (벡터를 단위벡터(1단위)로 반환해줌) = 말 그대로 방향만 가리키기 위한 수를 반환

크기

ㄴ magnitude

 

도트

도트 생성물은 두 벡터의 크기와 동일한 플로트 값으로 함께 곱한 다음 둘 사이의 각도의 코신을 곱합니다. 정규화된 벡터의 경우 Dot는 정확히 동일한 방향을 가리키는 경우 1을 반환하며 벡터가 수직인 경우 완전히 반대 방향으로 가리키는 경우 -1이고 0을 가리킵니다.

Acos

ㄴ 스크립트는 처음에 EmptyObject로 만든 상위오브젝트에 할당한다.

 

Hero의 업데이트에 있는 Idle애니메이션이 실행될 때 자꾸 다른 애니메이션을 덮어버린다.

 

1.Idle을 메서드로 만들려고 했으나 그러면 한번 실행되고 끝이므로 특정 지점으로 이동한 뒤 캐릭터는 Idle애니메이션이 끝나면 아무런 애니메이션을 출력하지 않게 된다고 생각되서 일단 pass.

 

 

 

============================================================================

 

오브젝트들을 Level에 귀속시킴.

 



Player캡슐 생성 후 rigidbody적용, material적용

 

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

 

public class PlayerController : MonoBehaviour

{

    public Rigidbody playerRigidbody;

    public float speed = 0.8f;

 

    // Start is called before the first frame update

    void Start()

    {

 

    }

 

    // Update is called once per frame

    void Update()

    {

        if (Input.GetKey(KeyCode.LeftArrow))

        {

            this.transform.Translate(-this.speed, 0, 0);

        }

        if (Input.GetKey(KeyCode.RightArrow))

        {

            this.transform.Translate(this.speed, 0, 0);

        }

        if (Input.GetKey(KeyCode.UpArrow))

        {

            this.transform.Translate(0, 0, this.speed);

        }

        if (Input.GetKey(KeyCode.DownArrow))

        {

            this.transform.Translate(0, 0, -this.speed);

        }

 

    }

}

입력키에 따라 speed만큼 이동하도록 코드 작성

 

============================================================================

 

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

 

public class Test : MonoBehaviour

{

    public Button btn;

    // Start is called before the first frame update

    void Start()

    {

        var highScore = PlayerPrefs.GetInt("highScore");

        Debug.LogFormat("highScore: {0}", highScore);

 

        this.btn.onClick.AddListener(() =>

        {           

            Debug.Log("save");

            PlayerPrefs.SetInt("highScore", 1000);

        });

    }

 

    // Update is called once per frame

    void Update()

    {

        

    }

}

정보 저장하는 방법

 

============================================================================

 

벡터는 위치, 방향, 회전, 속도, 크기등에서 사용

 

벡터의 종류 (요소, 요소)

 

ㄴ 수 벡터 

 

ㄴ 기하 벡터 

 

 

 

벡터 : 방향, 크기

 

상대좌표 : 현재 좌표에서 나의 좌표

 

절대좌표 : 게임세상(월드)속에서 나의 좌표

 

 

 

벡터의 곱 : 스칼라 곱

 

벡터의 길이가 늘어난다 (요소의 곱)

 

ㄴex) (-3, 4) * 2 = (-6, 8)

 

 

 

크기가 1인 벡터 : 단위 벡터 (방향 벡터)

 

Vector3.forward(0, 0, 1) = 절대좌표의 forward(자신이 어느 좌표에 있어도 (0, 0, 1)이 앞.

 

!= transform.forward

 

 

 

벡터의 합 : 요소의 합

 

A (2, 3) + B(1, 2) = (3, 5)

 

B(1, 2) - A(2, 3) = (-1, -1)

 

벡터

 

방향의 정규화

ㄴ normarlized (벡터를 단위벡터(1단위)로 반환해줌) = 말 그대로 방향만 가리키기 위한 수를 반환

 

크기

ㄴ magnitude

 

 

도트

 

ㄴ도트 생성물은 두 벡터의 크기와 동일한 플로트 값으로 함께 곱한 다음 둘 사이의 각도의 코신을 곱합니다. 정규화된 벡터의 경우 Dot는 정확히 동일한 방향을 가리키는 경우 1을 반환하며 벡터가 수직인 경우 완전히 반대 방향으로 가리키는 경우 -1이고 0을 가리킵니다.

 

 

============================================================================

 

주말과제 궁수의전설 만들기

 

'Unity > 수업내용' 카테고리의 다른 글

Unity 3D 21.04.15.수업내용  (0) 2021.04.15
Unity 21.04.14.수업내용  (0) 2021.04.14
Unity 21.04.08.수업내용  (0) 2021.04.08
Unity 21.04.07.수업내용  (0) 2021.04.07
Unity 21.04.06.수업내용  (0) 2021.04.06