게임 개발/유니티C#28 유니티 C# Time.deltaTime 유니티를 공부해본 사람들이라면 Time.deltaTime에 대해 적어도 한번쯤은 들어봤을것이다. 그만큼 나도 초보시절에 많이 알아보고 공부했었는데, 하나하나 설명해주겠다. 일단 유니티의 Update문의 기능은 정확히 말하면 한 "프레임" 마다 한번씩 실행하는것이다. 게임에서 프레임이 안좋다. 이런 얘기를 들어본적이 있다면 이해가 쉬울것이다. 프레임은 곧 컴퓨터의 성능인데, 예를 들어 50년된 구형 컴퓨터는 1초에 10프레임이고, 요즘나온 최신 컴퓨터는 1초에 60프레임이라고 가정해보자. 그렇다면 유니티의 Update() 는 프레임마다 한번씩 실행하니 구형컴퓨터는 1초에 10번이 실행되고 최신 컴퓨터는 1초에 60번이 실행된다. 만약 Update문 안에 1의 거리만큼 이동하는 스크립트가 있다면? 구형 컴퓨.. 게임 개발/유니티C# 2022. 8. 28. 유니티 주변에 있는 물체 파악하기 게임에서는 주변의 물체를 파악할 필요가 있을 때가 있다. 예를 들어 몬스터가 범위 안으로 들어온 플레이어를 공격하거나 일정 거리 안으로 들어왔을 때 활성화되는 키 같은(보물상자) 이 기능이 필요한 상황이 생긴다. Collider[] hitColliders = Physics.OverlapSphere(center, radius); 이런 식으로 써준다. 해석하자면 Collider은 물체의 물리적 표면인데, 간단히 오브젝트라고 봐도 무방하다 오브젝트 배열을 만든 다음 , 변수 이름을 짓고, Physic.OverlapSphere이라는 것을 통해 값을 받아온다. OverlapSphere은 가상의 원을 그려 그 안에 있는 오브젝트(콜리 더)를 가져오는 기능이다. 첫 번째 인자 center는 원의 중심을 설정하는 것이.. 게임 개발/유니티C# 2022. 8. 19. 유니티 C# 양수만 입력되게 하기. if(EventSystem.current.currentSelectedGameObject != this.gameObject) { if(int.Parse(tex.text) < 0) { tex.text = ""; } } 첫 if문은 이 오브젝트가 현재 선택되고 있는지 확인한다. 두번째 if문은 이 오브젝트의 텍스트를 인트로 변환한 값이 0보다 작은지 확인하고 있다. 이 코드의 목적은 선택되지 않을때(값을 입력하고 엔터를 눌렀을때) 값이 0보다 작다면 텍스트를 아무것도 없게 비워놓는것입니다. 하지만 이코드의 단점은 text가 아무것도 없을때 int.parse를 쓴다면 에러가 난다는 것인데, 딱히 최적화적인 요소에서는 에러가 나지 않는것과 다르지 않으니 무시하셔도 되고 if(EventSystem.current.c.. 게임 개발/유니티C# 2022. 8. 17. 유니티 Data 만드는법. 유니티에는 다양한 속성을 받을수있는 Data라는 에셋이 있다. 우리가 public으로 저장한 변수마냥 인스펙터창에서 저장해줄수있는 Data를 만들기 위해서는 새로운 스크립트를 만들어서 이런식으로 만들어주면 된다. MonoBehaviour 스크립트를 참조하지 않아도 된다. 대신 ScriptableObject라는 클래스를 받아온다. 이 기능의 이름이 ScriptableObject이다. 그리고 그 위에 [CreateAssetMenu(menuName = "Scriptable/GunData", fileName = "Gun Data")] 라는 코드를 써준다. 그러고 유니티 에디터에서 우클릭을 누르게 되면 와우 원래 있던것마냥 폴더 위에 무엇인가 새로운 "메뉴"가 생겼다. 그렇다 [CreateAssetMenu(men.. 게임 개발/유니티C# 2022. 8. 16. 이전 1 2 3 다음 💲 추천 글