다 만들고, 녹스로 빌드해서 영상 찍어서 제출하기
https://github.com/IJEMIN/Unity-Programming-Essence
에셋 받기
https://assetstore.unity.com/packages/tools/input-management/joystick-pack-107631
조이스틱 다운 받기
새 프로젝트 만들어주기
---
해야할 것
인풋
레이캐스트
애니메이션컨트롤
네비메쉬
해야할 것
추가 점수 // 시네머신, UI hp
1. 플레이어가 바라보는 바얗ㅇ으로 일정 시간마다 총알을 쏜다.
2. 조이스틱으로 캐릭터를 컨트롤 할 수 있다.
3. 네비메시를 사용해서 지형을 설치한다.
4. 스폰 위치에 좀비가 스폰 될 수 있게 되어야한다.
5. 좀비는 플레이어를 쫒아간다.
6. 플레이어의 총알을 받으면 좀비는 죽는다.
7. 플레이어는 좀비에 닿으면 체력이 감소된다.
8. 플레이어의 체력이 0이되면 게임이 종료된다.
9. 게임이 종료되면 처음부터 다시 시작해야한다.
10. 안드로이드 플랫폼 빌드 후 실행결과를 확인 할수 있어야한다.
-----> 60점
+추가점수
1.시네머신 카메라를 사용해서 플레이어를 따라가게 만든다.
2.플레이어의 체력을 UI 상의 표시한다. 단. UI는 플레이어의 바닥에 붙어서 플레이어가 움직일때 따라 움직여야한다.
----->40점
------
리소스 압축풀기
17 - done -zombie 폴더 유니티로 열기
씬에서 메인씬 열기 - 1920-1080으로 사용하기
여기서 리소스를 뜯어내서 사용할 것이다.
(캐릭터, 좀비, 지형, 총, HP)
컨트롤 + n 해서 새로운 씬 만들어서 프리팹 가져오기
좀비, gun, (모델-우먼 - 애니메이션 빠져있음, 애니메이션 -> 슈터애니메이션 붙이기),
https://cafe.naver.com/gameprogramming7?iframe_url=/MyCafeIntro.nhn%3Fclubid=30392472
res 파일 (패키지 파일) 다운
그걸 가져와서 우리 프로젝트 넣을 것이다.
먼저 조이스틱부터 붙일 것이다.
이 순서대로 시험 볼댸 하면 된다.
플랫폼 변경 잊지말고 !
해상도를 맞춘다.
리소스를 임포트해준다.
프리팹에 있는 것 삭제해주고
마이프리팹스를 옮겨준다.
우먼 가져다놔서 실행해보기
이제 여기에 조이스틱을 달것이다.
조이스틱 추가하기
유니티에 추가해주기
조이스틱 데모씬 열어서 테스트해보기
플레이하면 잘 움직임, 이제 이걸 캐릭터로 바꿔줄것이다.
캔버스 만들고 안에 Variable Joystic 붙이기
개임메인 빈 오브젝트 만들어서
게임 메인 스크립터 넣어주기
Log 값 찍기
잘 찍힘. 이제 이걸로 값을 이용해서 쓰면된다.
질 찍힌걸 확인햇으면 케릭터 넣기
Transform.eulerAngles = new Vector3( 0, Mathf.Atan2( Input.GetAxis("Vertical"), Input.GetAxis("Horizontal")) * 180 / Mathf.PI, 0 );
이 코드 사용해서 테스트
회전 테스트 완료
방향이 잘 바뀌었으니깐 그냥 그 방향으로 앞으로 간다.
앞으로 움직이기 성공
if (joystick.Horizontal != 0 && joystick.Vertical != 0) {
this.playerGo.transform.Translate(Vector3.forward * 1.0f * Time.deltaTime);
}
그다음 애니메이션 하기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameMain : MonoBehaviour
{
public VariableJoystick joystic;
public GameObject playerGo;
private Animator anim;
private void Start()
{
this.anim = this.playerGo.GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
var eulerAngles = new Vector3(0, Mathf.Atan2(joystic.Horizontal, joystic.Vertical) * 180 / Mathf.PI, 0);
playerGo.transform.eulerAngles = eulerAngles;
if (joystic.Horizontal != 0 && joystic.Vertical != 0)
{
this.playerGo.transform.Translate(Vector3.forward * 1.0f * Time.deltaTime);
this.anim.SetFloat("Move", 1.0f);
}
else
{
this.anim.SetFloat("Move", 0f);
}
}
}
---
일정 시간 총알을 쏘게한다.
Gun에 만든다.
Gun 스크립터를 만든다.
건에다가 건 스크립터를 붙여준다.
건의 발사 테스트를한다.
----
지형을 가져다 놓은다
지형 가져다 놓은거 언팩한다.
캐릭터가 지형을 뚫고 내려가지 않게
rigibody와 캡슐 콜라이더를 붙여준다.
리지드 바디 로테이션 막고
캡슐 크기 조절
베이크 누르면 구워진다.
-----
스폰 포인트 만들어서 좀비 생성하기
빈 오브젝트 만들어서 안에 포인트 1 2 만들어서 좌상단, 우상단에 만들어주기
좀비 스패너
빈 오브젝트에 붙여주기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ZombieSpawner : MonoBehaviour
{
public int maxCount = 2;
public List<GameObject> zombies;
public GameObject zombiePrefab;
public Transform[] arrSpawnPos;
// Start is called before the first frame update
void Start()
{
this.zombies = new List<GameObject>();
this.CreateZombies();
}
private void CreateZombies()
{
if (zombies.Count == 0)
{
return;
}
else
{
int total = this.maxCount - this.zombies.Count;
for (int i = 0; i < total; i++)
{
var zombieGo = Instantiate<GameObject>(this.zombiePrefab);
var zombie = zombieGo.GetComponent<Zombie>();
zombie.Init(this.arrSpawnPos[i].position, i);
}
}
}
}
최대 2마리까지 생성되게
Zmobie 스크립터 만들기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class Zombie : MonoBehaviour
{
public Action onDie;
public int Id { get; private set; }
public void Init(Vector3 initPos, int id)
{
this.transform.position = initPos;
this.Id = id;
}
public void Hit()
{
Debug.Log("Hit");
this.Die();
}
public void Die()
{
Debug.Log("Die");
this.onDie();
}
}
이 이상은 카페 확인.. 컴터재부팅때문에 놓침..
그래서 다 만들고나서 녹스로 빌드 해보기
'Unity > 엔진프로그래밍' 카테고리의 다른 글
0415_좀비슈터 단계별 테스트 _ 좀비가 타겟을 바라보고 이동 (0) | 2021.04.15 |
---|---|
0415_좀비슈터 단계별 테스트 _ UI만들고, 부딪치면 체력깍이게하기 (0) | 2021.04.15 |
0415_좀비슈터 단계별 테스트 _ 움직이고, 부딪치면 충돌 체크 (0) | 2021.04.15 |
0415_좀비슈터 단계별 테스트 _ LineRenderer (0) | 2021.04.15 |
0415_좀비슈터 단계별 테스트 _ 자동발사 (0) | 2021.04.15 |