본문 바로가기
728x90

유니티5

간단한 게임만들기#8(캐릭터 HP와 위험요소 제작2) public void next_stage_button() { if (stage_num == 1) { GameObject.FindGameObjectWithTag("Player").transform.position = spawn_stage_1.transform.position; } } 이번엔 캐릭가 적에 부딪혔을때 체력깎임 뿐만 아니라 약간 빨간색으로 변하게 해서 직관적으로 표현해 볼 생각이다. Player 스크립트를 연 다음 상단에 Material meshs; // 이렇게 meshs라고 선언해준뒤 Start 함수에서 아래와 같이 작성해 준다. meshs = this.transform.GetChild(0).GetComponent().material; 그리고 OnDamag 함수에 가서 아래와 같이 작성해준다... 2023. 7. 5.
간단한 게임만들기#8(캐릭터 HP와 위험요소 제작1) 저번 게시글에서 다음스테이지로 넘어가는 기능을 만들었기 때문에 다음 스테이지를 만들어볼건데 새로운 씬을 만드는게 아닌 같은 씬에서 위치만 바꿔 새로운 스테이지를 만들 고 Hp 등을 만들 예정이다. 게임 씬에서 맵을 복사한다음 PosX 를 30만큼 옴겨준다. Player 도 이동시켜서 잘 되는지 확인한다. Player 스크립트를 열어 아래 변수를 추가한다. 물론 초기화는 Inspector에서 해주는게 좋다. Scripts 폴에서 C# Script 하나를 생성해서 UI_Manager라고 이름붙여 주고 아래와 같이 작성한다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; usi.. 2023. 7. 5.
간단한게임만들기 #7(점프애니메이션과 로비 추가) 점프는 되지만 애니메이션은 들어가 있지 않은데 점프는 한동작이 아니라 뛰어오르는것과 착지하는것 이렇게 두가지로 나눠진다. 그리고 로비는 만들었지만 몇가지를 추가해보려고 한다. 먼저 저번 게시글에 보았던 BoyAnimController 에 휴머노이드 폴더 안에 있는 Jump와 Land 애니메이션 클립을 끌어와 준다. 그리고 Any State - Jump - Land - Exit 으로 Transition을 연결해준다. 저번처럼 3 개의 화살표 다 Has Exit Time 체크를 해제 해 준다. 그리고 DoJump 라고 trigger 를 추가해주고 Jumping 이라는 Bool 타입 변수를 추가 해준다. 이 후 AnyState 에서 Jump 로 가는 화살표의 컨디션에는 DoJump 를 추가해주고 Jump에서 .. 2023. 6. 21.
간단한 게임만들기#6(애니메이션 임포트) 애셋 스토어에서 애니메이션을 가져와 컨트롤을 해보도록 하겠다. 먼저 에셋스토어에서 초보자와 친구들 에셋을 임포트 해준다. Boy Prefabs 를 맵에 배치해준다. Hierachy에서 Boy를 클릭한 후 우클릭해서 Prefabs-Unpack Completetly 를 해주고 Inspector 에서 플레이어 처럼 만들기위해 Box Collider, Rigidbody, Player C# Script, Audio Source, Mesh Renderer 등의 컴포넌트들을 가져와 준다 이때 하나하나 새로 만들어서 값을 넣는게 아닌 Player 오브젝트에서 컴포넌트의 점 세게를 클릭한 뒤 Copy Component 를 클릭하고 Boy 오브젝트에 돌아와 Paste Component As New 주면 값을 그대로 가져와.. 2023. 6. 21.
싱글톤 패턴 게임을 다만들었지만 현재 기능들은 대부분 Player스크립트 안에 다 들어가 있어서 다른기능들의 접근이 어렵다. 예를들어 아이템이 몇 개 안남았을때 아이템의 회전속도가 빨라지거나 한다면 남은 아이템 갯수에 접근을 해야하는데 모두 Player 스크립트 안에있는 변수라 그곳에 접근해야 한다. 스크립트를 하나 만들어서 아래와 같이 만들어본다 이걸 아이템중 하나의 스크립트에 넣어서 실행해보면 하나의 아이템만 빠르게 회전하는것을 알 수 있다. 하지만 위에 있는 Find같은것은 잘 쓰지 않는다. 왜냐하면 하나하나 Find하게 되면 너무 비효율적이며 부하가 걸리기 때문이다. 아니면 Tag를 이용해서 찾을 수 도 있다. 하지만 태그가 여러개인경우에는 맨 위에 있는 태그의 오브젝트만 실행되게 된다. 그렇다면 어떻게 효율.. 2023. 6. 21.
728x90