728x90

GameDevelop 96

[Unity] 충돌체크로 점수 증가 AddScore()

매개변수란, 이 함수를 다른 곳에서 호출했을 때 데이터를 넘겨주기 위한 공간.public void AddScore(int score){}위 코드의 score이 매개변수이다. 점수를 증가시키기 위해서 캐릭터와 빗물이 충돌했을 때 점수를 넘겨줘야한다.이 score 변수를 통해서 넘어온 데이터를 totalScore에 더해줄 것이다. Rain스크립트에서 이전에 그라운드와 충돌체크를 해준 것처럼,플레이어와 빗방울의 충돌이 이루어지면 점수를 추가하는 로직을 구현해보자. 점수 증가 로직GameManager 스크립트void MakeRain(){ Instantiate(rain);}//캐릭터와 빗물이 맞았을 때 호출public void AddScore(int score){ totalScore += score;}..

[Unity] 싱글톤(Singleton)

다른 스크립트에서 불러올 수 있게끔 싱글톤을 만들어준다. 싱글톤이란, 나 하나밖에 없다라는 뜻 한마디로 이 프로젝트의 GameManager라고 하는 객체는 나 하나밖에 없다 그리고 여러 스크립트에서 접근이 가능하게 만들어주는 기능 싱글톤 변수 선언 - 싱글톤을 위해서 public static이라는 키워드 사용- 클래스 네임과 똑같이 써줌- 변수 이름은 Instancepublic static GameManager Instance; 그리고 이 instance에는 나 자신을 넣어줘야함! private void Awake(){ Instance = this;}

[Unity] Canvas 점수보드 UI, 폰트

폰트 먼저 폰트를 적용해보자.폰트는 배민 한나체를 사용하였다.http://pop.baemin.com/fonts/hanna11yrs/BMHANNA_11yrs_ttf.ttfAssets에 Fonts폴더를 만들어 추가해주었다.  점수를 띄워주기위한 UI점수는 UI라는 것을 사용해서 보여줄 것이다. UI는 Canvas라는 도화지 위에 그려지고, 카메라 위치와는 관계가 없이 보여진다.→ 버튼 / 텍스트 / 순위를 보여줄 때에만 사용된다.UI > Legacy > Text선택 Canvas는 카메라가 찍는게 아니라 화면에 바로 그려지는 영역이다.Text를 아래와 같이 수정설정후 Main Camera를 클릭해보면 Main Camera에는 현재점수 텍스트가 보이지 않는다.하지만 Game화면에는 현재점수 텍스트가 생성된 것을..

[Unity] UnassignedReferenceException오류

Rain오브젝트를 Prefab으로 만든 후 GameManager에 넣고 디버깅을 했는데 아래와 같이 UnassignedReferenceException오류가 나면서 빗방울이 생성되지않았다.  찾아보니 이 오류는 참조타입 데이터가 초기화 되지않아 Null인 값을 호출하여 연산,메소드를 실행하려고 했을때 발생하는 오류라고 한다.그리고 오류메시지에 보면 assign the rain variable of the GameManager script in the inspector라고 적혀있다. GameManager에 rain할당문제가 있는지 확인해봤더니 아까 할당했던 Rain이 None으로 되어있었다. 그래서 다시 Assets>Prefabs에 있는 Rain을 Game Manager의 Rain에 드래그 앤 드롭해주었다..

[Unity] 빗방울 반복생성, 프리팹(Prefab)

게임의 전반적인 진행을 위해서 필요한 로직은 게임 매니저(Game Manager)에서 관리하는 것이 관행적Hierarchy에서 Create Empty > GameManager라는 object를 생성한다.GameManger 스크립트도 생성하여 GameManager object에 붙여준다. Prefab, 붕어빵틀 여러개의 빗방울을 생성하기 위해서는 Rain오브젝트를 프리팹화 해주어야한다.프리팹이라는 것은 붕어빵틀 같은 존재이다. 붕어빵 틀에다가 반죽만 부으면 붕어빵모양이 그대로 찍혀나오는 것과 같다.이와같이 반복적으로 게임 오브젝트를 생성하기위해서 만들어놓은것이 바로 프리팹이다.  Prefab을 만들기 위해 Project에 Prefabs라는 폴더를 생성한다. 그리고 Prefabs폴더에 Rain오브젝트를 드래..

[Unity] 빗방울 랜덤생성 Random.Range

빗방울 랜덤생성랜덤생성 범위값설정은 아래와 같이 설정X값( -2.4f ~ +2.4 )Y값( 3.0f ~ 5.0f ) void Start(){ //Range(최소값, 최대값) float x = Random.Range(-2.4f, 2.4f); float y = Random.Range(3.0f, 5.0f); transform.position = new Vector3(x, y, 0);} 📌Rain의 시작 위치를 Random함수를 통해서 랜덤하게 해주고, 그범위를 Range로 설정해준다.📌랜덤하게 생성된 각각의 값을 실수형 변수 x, y에 담아주고 transform postion의 x,y값에 접근하기 위해 Vector를 사용하여 설정해준다.  다양한 크기의 빗방울 생성큰빗방울(타입1), ..

[Unity] Tag생성

Tag추가아래의 코드에서 Ground 이름이 변경되는 것과 같이 여러 변수가 생길수 있으니 collision.gameObject.name=="Ground" 이와 같이 name을 쓰는 대신 tag를 추가해보도록 하자.//충돌이벤트 발생시private void OnCollisionEnter2D(Collision2D collision){ if(collision.gameObject.name=="Ground") { Destroy(gameObject); }} Add Tag를 선택한다. +버튼을 누르고 Ground라고 적어준다 그리고 다시 Ground 게임 오브젝트를 눌러서 tag목록을 보며 Ground태그가 추가된것을 확인할 수 있다. Ground태그를 선택해준다. tag를 생성해준 후..

728x90