Unity(119)
-
[Unity] Euler 회전과 Quaternion 회전
Euler -x, y, z 축으로 기준으로 하는 회전. 축이 겹쳐질 때 어떤 축인지 구별할 수 없는 짐벌락 현상이 벌어진다. Quaternion -x, y, z, w 네 축으로 각도를 표현. 유니티 에디터 상에서는 x, y, z의 오일러 각도를 쓰는 것처럼 보이지만 내부적으로 코드단에서 쿼터니언으로 동작함. public class Test : MonoBehaviour { float speed = 30; void Update() { Quaternion rot = transform.rotation; rot.x += Time.deltaTime * 10; transfrom.rotation = rot; } } public class Test : MonoBehaviour { float speed = 30; void..
2023.08.28 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(4) 미사일 발사
미사일 스프라이트를 Hierarchy 창에 올린 후 Rigidbody 2D, Box Collider 2D를 추가한다. Rigidbody 2D의 [Body Type]은 [Kinematic]으로 설정한다. 이후 미사일을 prefab으로 만들어준다. 이후 플레이어 스크립트에 public GameObject shoot; 코드를 추가하여 만든 프리팹을 사용할 것이다. public GameObject shoot; 방법1) 좌표를 직접 지정 void Start() 함수 안에 Instantiate 기능으로 프리팹을 불러올 수 있다. Instantiate(shoot, transform.position, Quaternion.identity); 이제 미사일 발사 위치를 지정해야 한다. void Start() { spr = ..
2023.08.28 -
[Unity] Tag와 Layer
Tag 물체를 구분하기 위해 사용한다. 여러 오브젝트에 같은 태그 사용 가능하다. 태그를 통해서 오브젝트를 찾을 수 있다. FindGameObjectsWithTag(다중 오브젝트 배열 형태로 찾기), FindWithTag(하나의 오브젝트 찾기) Inpector 창에서 태그를 부여할 수 있다. Layer Sorting Layer: 보여줄 때의 순서 -Layer가 아래에 있을 수록 앞에서 보여지며, 같은 Layer라도 Order in Layer 값이 클 수록 앞에서 보여진다. Physics Layer: 물리 연산할 때의 순서
2023.08.24 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(3) 플레이어 제한
플레이어가 게임 화면 밖으로 나가지 않게 제한을 걸어야 한다. 여기서 플레이어의 콜라이더를 이용하여 좌표 값이 게임 화면 이상으로 나가지 않게 스크립트를 추가할 것이다. If 문 사용 public float spd = 10; private SpriteRenderer spr; private Sprite[] player1Sprites; private Sprite[] player2Sprites; private Sprite[] player3Sprites; Vector3 min, max; Vector2 colsize, chrsize; void Start() { spr = gameObject.GetComponent(); player1Sprites = Resources.LoadAll("Sprites/player/pl..
2023.08.24 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(2) 배경 설정
배경화면 에셋을 하나 복사하여 두개를 나란히 V키 스냅을 이용해 위와 같이 배치한다. Pixels Per Unit 값을 조정해 화면보다 조금 크게 조절한다. 배경화면 스크롤 횡스크롤 게임이기 때문에 배경화면을 왼쪽으로 계속 움직여야 한다. 스크립트를 하나 만들어 조절한다. 왼쪽의 배경이 일정 값 이상 넘어가면 오른쪽으로 다시 옮겨서 무한 반복되게 만들어야 한다. public class BGScript : MonoBehaviour { public float bgspeed = 2; SpriteRenderer bgspr; void Start() { bgspr = GetComponent(); } void Update() { transform.position += Vector3.left * Time.deltaTi..
2023.08.24 -
[C#] Static 변수 / Static 함수 / Static 변수의 자기참조
public class Test : MonoBehaviour { public static int number; void Start() { Test.number = 20; print(Test.number); MyStaticFunc(10); } public static void MyStaticFunc(int a) { print(Test.number + a); } } static 변수 number를 생성하였고, static 함수 myStaticFunc()를 생성하였다. (**static 함수 안에서는 멤버변수를 사용할 수 없고 함수 입력 인자, 함수 내부 변수 또는 static 변수가 들어가야 한다. 외부 변수는 class의 메모리에 생성되기 때문) Static 변수의 자기참조 Public class Mana..
2023.08.24