일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Programming
- c++
- Material
- Tutorial
- UE5
- loop
- 오류
- parameter
- dfs
- Basic
- python
- guide
- 프로그래밍
- dynamic
- 파이썬
- Unreal Engine 5
- 기초
- Class
- C#
- 시작해요 언리얼 2022
- 백준
- 재귀
- 문제풀이
- Algorithm
- String
- w3school
- W3Schools
- DP
- github
- Unity
- Today
- Total
행복한 개구리
Unity 21.04.09.수업내용 본문
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 |