Unity(121)
-
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(6) Hit 이펙트 추가
미사일이 소행성에 맞으면 그에 맞는 이펙트가 생겨야 한다. Hit 스프라이트를 알맞게 설정한 후 한꺼번에 Hierarchy 창으로 끌어서 애니메이션을 만든다. 애니메이션을 만든 경로에 Hit 애니메이션 클립이 있는데, 한 번 부딪힐 때 한 번만 이펙트가 생격야하므로 Loop Time을 체크 해제해야 한다. 해당 애니메이션 클립을 더블 클릭하여 Animation 창을 띄운 후 Hierarchy 창에서 hit1 스프라이트를 눌러 애니메이션을 재생해 보면 반복되는 것을 볼 수 있다. 한 번 반짝이고 서서히 사라지도록 애니메이션을 수정해야 한다. Add Property로 color를 추가하여 6프레임까지 Color.a 알파 값이 1을 유지하다가 8프레임에서 0을 만들어 사라지게 하였고, Sprite 부분..
2023.08.31 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(5) 소행성 추가
소행성 장애물을 추가하기 위해 스프라이트를 설정한 후 스크립트를 만들어서 적용할 것이다.public class AsteroidScript : MonoBehaviour{ public float asteroidSpeed = 5; public float rotationspeed = 30; void Update() { transform.position += Vector3.left * Time.deltaTime * asteroidSpeed; transform.Rotate(new Vector3(0, 0, Time.deltaTime * rotationspeed)); }} 소행성의 이동과 회전을 같이 스크립트에 적용하면 그대로 동작하는 것을 볼 수 있다. pu..
2023.08.31 -
[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 : MonoBeh..
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