Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

공hannah부

CJ UNIT 7기 게임TF #3(급식실 게임 - 학생 표정 바꾸기) 본문

프로젝트/CJ UNIT 7기 게임TF

CJ UNIT 7기 게임TF #3(급식실 게임 - 학생 표정 바꾸기)

Hannah0226 2022. 11. 23. 02:46
오늘의 내용

학생들을 클릭/드레그하면 각 구간에 맞게 웃는/우는 표정의 창캐미로 바꿔야한다.

처음에는 학생이 눌리면 그 학생을 멈추고 웃는/우는 애니메이션을 넣으려고 했지만 애니메이션을 창캐미가 눌린 x값의 위치에 넣는 방법을 모르겠어서 pass..

또 학생을 멈추니 그 자리에 있는 학생을 연속으로 누르면 점수가 올라간다..

학생을 누르면 학생이 사라지고 그 자리에 웃는/우는 모습의 창캐미 이미지를 새로 생성해주기로 결정!

 

NoteManager

- 급식판 들고 있는 학생 웃기 / 급식판 들고 있는 학생 울기 / 급식판 안들고 있는 학생 웃기 / 급식판 안들고 있는 학생 울기의 4가지 함수를 만들어 각 학생 스크립트에서 꺼내쓸 수 있도록 하였다.

- 각 함수에는 instantiate를 사용해 학생을 생성해주는 코드가 들어가 있다. 이때 parent 생성은 필수!

- 이때 각각의 학생들은 prefab으로 만들어 관리해주었다.

- 만들어진 학생들은 5초뒤 사라진다.

//식판 들고있는 학생 웃기
public void ChangeStudentOHappy(int x)
    {
        GameObject theStudentOHappy = Instantiate(StudentOHappy, new Vector3(x, 0, 0), Quaternion.identity);
        theStudentOHappy.transform.SetParent(this.transform,false);
        Destroy(theStudentOHappy,0.5f);
    }

 

NoteO / NoteX

- 학생 클릭 / 드레그가 인식되면 그 학생을 destroy시키고 Notemanager에서 구간에 맞는 학생 함수 가져와 이미지를 생성시킨다.

//식판 들고있는 학생 클릭했을 때
public void OnPointerClick(PointerEventData eventData)
    {
        int PerfectX1=-50, PerfectX2=50, CoolX1=-100, CoolX2=100, GoodX1=-200, GoodX2=200, BadX1=-400, BadX2=400;     //P,C,G,B 구역 설정
        int PositionX = Mathf.RoundToInt(transform.localPosition.x);
        if(PerfectX1 <= PositionX && PositionX <= PerfectX2)
        {
            Destroy(gameObject);
            theNoteManager.ChangeStudentOHappy(PositionX); //클릭한 위치에 웃는 표정 학생 생성
        }
     }

 

실행 영상