728x90
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<SkinnedMeshRenderer>().material;
- 그리고 OnDamag 함수에 가서 아래와 같이 작성해준다.
이렇게 작성 후 적과 부딛히면 색갈이 2초간 빨간색으로 바뀐후 돌아오는것을 확인 할 수 있다.
- 이제 적이 나를 따라오게 해볼건데 Window - Ai - Navigation을 클릭한다.
- 그다음 Map - Plane 을 선택한다음 Navigation 에서 Bake를 선택한 후 Bake 를 클릭한다. 이후 Gobline_enemy(적 오브젝트)에서 AddComponent 한다음 Nav Mesh Agent 를 추가한다.
- Goblin_enemy 스크립트를 열어준다음 using UnityEngine.AI; 를 상단에 추가해주고 아래 내용을 추가한다.
public Transform target;
private NavMeshAgent navagent;
private void Awake()
{
target = GameObject.FindGameObjectWithTag("Player").transform;
navagent = GetComponent<NavMeshAgent>();
}
private void FixedUpdate()
{
navagent.SetDestination(target.position);
}
- 이후 Player_Boy 를 Player 태그를 붙여주고 Plane(바닥) - Navigation 에서 object - Navigation Static 을 체크해준다. 이후 다시 Bake 해준다.
- 게임을 실행해보면 적이 날 따라오는것을 확인 할 수 있다. 이제 HP 가 0 됬을때 사망하는걸 만들어 볼텐데 일단 캔버스의 End 이미지를 캔버스 최하단으로 만들어주고 Clear_Image 로 이름을 바꿔준다. 그리고 Ctrl D 로 복제한 다음 Dead_Image로 이름을 바꾼다음에 죽었을때 화면으로 바꿔준다.
- MyManager 스크립트로 가서 public GameObject Dead_Image; 를 선언해주고 메인카메라 오브젝트에서 Dead_Image를 넣어주고 MyManager 스크립트에 아래 함수를 추가해준다.
public void Player_Dead()
{
Dead_Image.SetActive(true);
}
이 함수를 만들어주고 다시 Player 스크립트로 가서 OnTriggerEnter 함수 내에 적과 부딛혔을때 부분을 아래와 같이 수정해준다.
if (other.tag == "Enemy_Goblin")
{
if(!noDamage)
{
HP = HP - other.GetComponent<Goblin_enemy>().Damage;
if (HP > 0)
{
StartCoroutine("OnDamage");
}
else if (HP <= 0)
{
MyManager.Instance.Player_Dead();
}
}
}
- 이제 스테이지를 이어주는 작업을 할건데 먼저 MyManager 스크립트에서 public int stage_num; 라고 변수를 하나 선언해 주고 Awake 함수에 0으로 초기화 해준다.
- Player 스크립트로 가서 Score 가100을 넘기면 엔드이미지를 띄워주는 부분 아래 MyManager.Instance.stage_num++; 이 부분을 추가한다
- MyManager 스크립트에서 public GameObject spawn_stage_1; 라는 오브젝트 변수를 추가하고 아래 내용을 추가한다. 스테이지가 1이 되면 다음스테이지로 플레이어의 위치를 옴기는것이다.
- 다 됬으면 Map2 에서 우클릭- Create Empty 클릭 후 이름을 spawn 으로 지정해주고 카메라 - 스크립트 부분에서 Spawn_stage_1 에 Map2 에서 만든 spawn 을 넣어준다.
- 그리고 Canvas - Dead_Image - Next_Stage_Button - On Click 에서 Main Camera 를 지정한뒤 MyManager.next_stage_button 으로 지정해준다. 스테이지를 깨고 버튼을 누르면 다음 스테이지를 가기 위함이다.
- 이후 next_stage_button 함수에서 Clear Image 를 false 해준다.
728x90
'유니티 > 간단한 게임' 카테고리의 다른 글
간단한 게임만들기#8(캐릭터 HP와 위험요소 제작1) (0) | 2023.07.05 |
---|---|
간단한게임만들기 #7(점프애니메이션과 로비 추가) (0) | 2023.06.21 |
간단한 게임만들기#6(애니메이션 임포트) (0) | 2023.06.21 |
간단한 게임만들기#5(안드로이드 셋팅) (0) | 2023.05.29 |
간단한 게임만들기#4(UI 구축) (1) | 2023.05.29 |
댓글