본문 바로가기

c#15

파티클 이펙트 Hierarchy에서 우클릭 - Effects -Particle System을 클릭한다. 파티클 시스템 옵션들은 그냥 정말 직관적이라 따로 설명은 필요없지만, 꼭 알아야할 부분은 Random 기능이다. 만약 이 설정이 없다면 모든 파티클이 똑같은 시간에 생성되서 똑같은 시간을 지속 후, 똑같은 시간이 지나면 사라질 것이다. 따라서 이런 식으로 랜덤성을 주어서 이펙트가 너무 딱딱하지 않게 조절해주는 기능을 알면 좋다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class FinishLine : MonoBehaviour { [Serial.. 2022. 6. 12.
메소드 실행 늦추기 어떤 경우에 씬을 로드한다고 했을 때, 바로 화면이 전환되어 버리면 유저는 위화감과 어색함을 느낄 수 밖에 없다. 예를 들어 게임오버가 되어 화면이 전환되어야하는데 아무런 피드백도 없이 화면이 바뀐다면 유저는 머리 속에 물음표를 띄울 것이다. 그렇다고 SceneManager.LoadScene() 메소드를 조정하는 것도 탐탁지 않은 일이다. 그럴 때 쓰는게 Invoke()이다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class FinishLine : MonoBehaviour { [SerializeField] float loadDel.. 2022. 6. 12.
씬Scene 관리하기 (맵 스테이지 바꾸기, 재시작, 게임오버) File - Save as를 누르고 Scenes 디렉토리에 원하는 이름으로 저장해준다. 씬이 저장되었으면, File - Build Settings로 들어간다. 남아있는 SampleScene을 우클릭해서 Remove해주고, Add Open Scenes를 클릭한다. Scenes/Stage1이 Index 0으로 잘 들어가있는 것을 확인할 수 있다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class FinishLine : MonoBehaviour { void OnTriggerEnter2D(Collider2D other) { if(othe.. 2022. 6. 12.
오브젝트 삭제 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Delivery : MonoBehaviour { private void OnCollisionEnter2D(Collision2D other) { Debug.Log("Hello"); } public void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Event") { Destroy(other.gameObject, 0.05f); } } } Destroy()를 쓰면 된다. ... 쉽다! 두 번째 인자인 0.05f는destroy하기 전까지의 딜레이이다. 딜레이 시간 안에 파괴 이펙트 같은 걸 넣으.. 2022. 6. 8.
Tag를 이용해서 Collision(Trigger) 구현 전에 충돌(트리거)을 통해 이벤트를 발생시켜봤지만, 그건 모든 충돌 상황에서 발생하는 로직이었다. 그럼 특정 오브젝트에만 트리거를 심고 싶다면 어떻게 해야할까? 원하는 트리거에 Event 태그를 달아주었다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Collision : MonoBehaviour { private void OnCollisionEnter2D(Collision2D other) { Debug.Log("Hello"); } public void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Event") { Debug.Log(.. 2022. 6. 8.
728x90