변수란 변수를 박스라고 생각하고 그 안에 여러가지 데이터를 추가한다
함수란 반복적으로 실행되는 로직을 하나로 묶어놓은 단위
Prefabs -> 일종의 붕어빵 틀, 반복적으로 사용하기 위해 만들어 두는것
게임오브젝트를 생성하는건 Instantiate(게임오브젝트 이름);
Instantiate(food,new Vector3(x,y), Quaternion.identity); (오브젝트, 생성위치, 회전값을별도로 설정하지 않는다면 Quaternion.identity 사용)
InvokeRepeating("소괄호 제외하고 함수이름", 0f, 1f); 함수를 0초부터 1초마다 생성하는 함수 -> 함수를 반복적으로 사용하는 함수이다.
UI는 Canvas라는 화면위에 카메라 위치 상관없이 게임화면에서 보여진다. 버튼이나 텍스트 이미지 등 사용할 때 사용한다.
싱글톤이란 게임매니저라는 스크립트에서 사용하면 이프로젝트에 게임매니저라는 객체는 하나밖에 없고 여러 스크립트에서 사용 가능하다
Public static 클래스이름 Instance;
Private void Awake()
{
If(Instance == null)
{
Instance = this;
}
}
이렇게 설정하면 해당 클래스를 싱글톤으로 사용 가능하다.
Public 사용시 다른 스크립트에서 접근이 가능하다.
UI사용시 using UnityEngine.UI; 를 맨위에 적어주어야 한다.
Int 형은 string으로 변환할 때 뒤에 .ToString() 을 붙여주면 된다.
Rect Transform 사용시 아래와 같은 그림을 클릭하고 alt+Shift 를 누르고 오른쪽 맨 하단에 그림을 클릭하면 그림의 크기와 해당 텍스트의 크기가 맞춰진다.
Time.deltaTime 프레임과 마찬가지로 모든 기기들이 같은 시간값을 가지게 해준다. 프레임값에 대비해서 만들어준 것이다. 이걸 사용하면 기기 성능에 따라 가는게 아니라 모두 일정한 시간에 가게 해준다.
Scene을 사용하기 위해서는 using UnityEngine.SceneManagement; 을 위에 써주어야한다.
Camera.main.ScreenToWorldPoint(Input.mousePosition); 화면의 마우스 좌표를 카메라 상의 월드 좌표로 바꿔준다.
string으로 “”을 사용해서 자주쓰는 것은 대소문자만 틀려도 오류날 가능성이 크기 때문에 이것을 string key = “asdf” 이런식으로 key라는 변수에 넣어 더욱 안전하게 사용하면 코드의 안전성이 올라간다.
PlayerPrefs 는 데이터를 메모리상에 저장하고 이를 하드드라이브에 저장한다. Save() 함수로 메모리 상에 저장된 데이터를 하드 드라이브에 저장할 수 있다. 즉 최고기록 갱신, 최고점수 기록 등 이런 곳에 사용 할 수 있다.
PlayerPrefs 제공 함수로는
DeleteAll() : 모든 데이터를 삭제한다.
DeleteKey(String Key) : Key와 대응하는 값을 삭제한다.
HasKey(String Key) : Key가 존재하는지 확인한다.
Save() : 수정된 모든 preferences를 파일에 저장한다.
PlayerPrefs은 int, float, string 타입의 데이터를 저장하도록 Set 함수를 제공한다.
SetInt(string Key, int value) : Key 값으로 int 형 데이터를 저장한다.
SetFloat(string Key, float value) : Key 값으로 float 형 데이터를 저장한다.
SetString(string Key, string value) : Key 값으로 string 형 데이터를 저장한다.
PlayerPrefs은 int, float, string 타입의 저장된 데이터를 불러오도록 Get 함수를 제공한다.
GetInt(string Key) : Key 값으로 저장된 int 형 데이터를 불러온다.
GetFloat(string Key) : Key 값으로 저장된 float 형 데이터를 불러온다.
GetString(string Key) : Key 값으로 저장된 string 형 데이터를 불러온다.
출처 https://docs.unity3d.com/kr/530/ScriptReference/PlayerPrefs.html
애니메이터 전환 설정
Has Exit Time 체크 시 진행중인 애니메이션이 끝나야 전환 아닐 시 조건 만족하면 바로 전환한다.
Exit Time 애니메이션 길이 비율(0~1)로 설정 50%면 0.5이다.
Transition Duration (전환 시간 설정) 애니메이션 간 자연스러운 전환을 위해 시간 설정
0이면 바로 전환되고 값이 클수록 부드럽게 전환된다.
Transition Offset 다음 애니메이션의 시작지점을 조절한다.
스크립트 삭제할 때에는 스크립트 안에 내용을 모두 삭제한 후에 삭제해야 한다.
출처 : 챗GPT
Canvas 크기가 강의보다 작아서 왜 다른지 찾아보니
이 설정이 Free Aspect로 변해있었다. 잘 확인해야 할 것 같다….
스크립트를 넣었을 때 스크립트 이름과 클래스 이름이 같지 않다고 오류가 나왔다.
그래서 튜터님과 확인해보니 결국 에디터 오류였다….. 유니티 끄고 다시키니까 작동이 잘되었다….
아래 이미지는 마우스로 좌우움직이는걸 제한을 걸어 둔건데
Else if 를 사용하지 않는지 궁금해서 튜터님에게 여쭈어 보니 프레임 높을때는 괜찮으나 낮을때는 부자연스러울 수 있어서 if문을 두개 써서 체크를 한다고 말씀해주었다.
!isFull 부분을 고심해 봤는데 처음에 isFull의 값은 false로 선언했고
if문에서는 !로 인해 true로 변해서 if문이 true로 참이므로 내부 if문을 실행 그리고
true인 상태에서 다시 !로 인해서 false 로 변해서 거짓이 됨으로 if문을 실행하지 않고 넘어감, 한번쓰고 건들지 못하게 하기 좋은 방법인 것 같다. 아래는 사용한 예시이다.
'개발 TIL' 카테고리의 다른 글
내일배움캠프 6일차 TIL C#배운내용 및 Tip (0) | 2025.01.27 |
---|---|
내일배움캠프 5일차 TIL 오늘 학습한 C#내용정리 (0) | 2025.01.24 |
내일배움캠프 4일차 TIL C# 나만의 용어정리 (1) | 2025.01.23 |
내일배움캠프 3일차 TIL 배운내용 및 용어 정리 (1) | 2025.01.22 |
내일배움캠프 1일차 TIL (0) | 2025.01.20 |