공부하기싫어
article thumbnail

오늘은 현재 이 포스팅을 쓰기 시작하는 3.17 저녁 7시부터 중간중간 쉬는시간을 섞어가며

총 6시간동안 작업 해 볼 예정이다.

시험도 끝났고 여유가 그나마 있는 3월동안에 완성시키는걸 목표로 빡세게 해볼 생각

 

 

  • up down point 제작

1.5유닛 거리에서 g키를 누르면 상호작용

코드

//player.cs update() 내

		if (Input.GetKeyDown(KeyCode.G))
        {
            RaycastHit2D hit = Physics2D.Raycast(rigidbody2d.position + Vector2.up * 0.2f, lookDirection, 1.5f, LayerMask.GetMask("potal"));
            if (hit.collider != null)
            {
                Debug.Log("Raycast has hit the object " + hit.collider.gameObject);
            }
        }

 

일단 1.5 유닛 거리 안에서 g키를 누르면 로그가 뜨게끔 만들어 봤다

 

 

레이어를 구분해서 충돌하지 않게 하고 오브젝트를 위치마다 배치했다

 

각 포인트와 포탈마다 오브젝트의 이름을 넘겨받아서

각 이름마다 전송할 좌표를 포탈의 스크립트에 if문으로 구분해서 넣어주고

리턴을 시켜서

플레이어의 좌표를 이동시키는 식으로 구현해 봤따

 

 

 

일단 지금 g키를 누르면 한번에 안가고 여러번 눌러야 이동한다

이동하는 부분의 코드를

 

if (Input.GetKeyDown(KeyCode.G)) //g키 상호작용
        {
            RaycastHit2D hit = Physics2D.Raycast(rigidbody2d.position + Vector2.up * 0.2f, lookDirection, 1.0f, LayerMask.GetMask("potal"));
            string pointN= hit.collider.gameObject.name;
            if (hit.collider != null)
            {
                Debug.Log("Raycast has hit the object " + hit.collider.gameObject);
                PointandPotal character = hit.collider.GetComponent<PointandPotal>();
                if (character != null)
                {
                    potal_coordinate=character.updown(pointN);
                    rigidbody2d.MovePosition(potal_coordinate);
                }
            }
        } else {
            if(!isAttacking) { //이동이 이루어지는 곳
                position.x = position.x + (Speed * horizontal * Time.deltaTime);
                rigidbody2d.MovePosition(position);
            } else {
                rigidbody2d.MovePosition(position);
            }
        }

 

이런식으로 짜봤는데

이게 프레임문제인지 g키를 누르고 if character != null 부분이 실행이 안되고 넘어가지는것 같다

이 문제는 나중에 한번 수정해 보도록 하고

 

  • 파란공

https://www.youtube.com/watch?v=cz4zEE0Rdfg 

 

위 영상 첫번째 패턴에서는 파란공의 저주이다

파란공이 공격받으면 부셔지게끔 하고, 그 스텍을 저장해서 일단 로그에 띄워 보자

 

로그띄우기

 

로그를 띄우는것까지 성공했으나

q를 누르자마자 없어져버린다...

이건 나중에 만져보고

 

public int hit(string ballname) {
        ball=GameObject.Find(ballname);
        Destroy(ball);
        if (ballname=="ball_blue_1" || ballname=="ball_blue_2" || ballname=="ball_blue_3") {
            return 1;
        }
        else {
            return 0;
        }
    }

 

배치까지 마무리

 

 

일단 오늘은 여기까지인데

오늘은 밤을 샐 생각이다.

유니티 하면서 겜도 하고 그랬어서 기존 계획했던 6시간동안 했는지는 모르겠지만

이정도만 일단 하고

좀 쉬다가 이따 한 12시 1시 쯤 다시 켜서 해봐야지

이따가 할 것

 

1. w키 - 점프 구현

2. 빨간공, 노란공 프리팹 구현 + 배치

 

까지 하고 초록광대몹이랑 화염방사기 아트 제작도 여친이 해주기로 했는데

워낙 기분따라 사는 애라 어디까지 얼마나 됬는지 모르겠다

확실히 같이 일하면 답답할 스타일 ㅋㅋ

오늘은 여기까지!

 

https://github.com/cyanindy/Unity/tree/main/3mario

 

GitHub - cyanindy/Unity: game dev

game dev. Contribute to cyanindy/Unity development by creating an account on GitHub.

github.com