본문 바로가기

728x90

Project/Hello 3D

(6)
[Hello 3D] Unity: 총알 스크립트 (완성) muzzle 총알이 생성될 위치를 가지고 있는 변수이다. bulletPrefab 총알의 프리팹을 저장할 변수이다. bulletSpeed 총알의 속도를 정할 변수이다. maxShotDelay 총알 발사 간격을 저장할 변수이다. curShotDelay 현재 흐르고 있는 시간을 저장할 변수이다. Start 함수를 통해서 curShotDelay에 다른 값이 들어가지 않게 0으로 초기화해준다. curShotDelay에 Time.deltaTime을 계속 더해주어서 시간이 얼마나 흘렀는지 계산한다. 만약 curShotDelay < maxShotDelay 조건을 만족한다면 그냥 함수를 나가게 return 시켜준다. 위의 조건을 만족시키지 않는다면 총알을 총알이 생성되어야 할 위치에 생성해주고, 현재 시간을 0으로 다시..
[Hello 3D] Unity: 총 스크립트 weaponHold 총을 장착할 위치를 저장한 변수이다. gunPrefab 장착할 총을 저장할 변수이다. equippedGun 장착된 총을 저장할 변수이다. 만약에 장착된 총이 있다면 장착된 총을 없애준다. 2개가 동시에 장착되는 것을 방지하기 위함이다. 그리고 나서 총이 장착될 위치에 총을 gunToEquip를 장착해준다. 그리고 장착된 총을 weaponHold의 자식으로 만들어준다. 총이 장착되지 않은 상태가 아니라면 equippedGun에 있는 gunController를 가져오고 가져온 gunController에 있는 Shoot 메서드를 실행시켜준다.
[Hello 3D] Unity: 적 생성기 스크립트 enemyPrefab 생성할 적을 담은 변수이다. spawnPoint 적 생성 위치를 담은 배열 변수이다. spawnTimeMin 적 생성에 걸리는 최소 시간을 담은 변수이다. spawnTimeMax 적 생성에 걸리는 최대 시간을 담은 변수이다. spawnTime 적을 생성하는 시간을 담을 변수이다. timeAfterSpawn 게임 진행 시간을 담을 변수이다. 게임 진행 시간을 0으로 초기화 해준다. 그리고 적 생성 최소시간과 최대시간 사이의 값을 랜덤으로 뽑아 적 생성 시간에 넣는다. timeAfterSpawn에 게임 시간을 지속적으로 더해준다. 만약 게임 진행 시간이 적 생성 시간보다 많아지게 되면 적을 생성한다. 첫번째로 랜덤한 정수형 변수를 spawnPos에 저장한다. 그리고 적을 생성하는데 적과..
[Hello 3D] Unity: 적 스크립트 speed 적의 이동속도를 설정하기 위한 선언한 것 rigid 적의 물리적 연산을 위해 선언한 것 target 플레이어의 위치를 담기 위해 선언한 것 Start 함수에는 적의 리지드바디를 가져오고, 타입이 Player인 게임 오브젝트의 트랜스폼을 target에 저장해준다. 그리고 Move() 함수를 실행시켜준다. targetPos(플레이어)의 방향을 구해준다. 그리고 LookAt 함수를 사용하여 적이 바라보는 방향을 플레이어쪽으로 설정하고, targetPos를 단위벡터로 바꿔주고, 거기에 속도를 곱한다. 그리고 그 값을 적의 속도로 설정해준다. 마지막으로 Invoke 함수를 사용하여 재귀함수로 만들어주고 0.5초에 한번씩 호출해준다. 만약 Bullet과 충돌하게 되면 적 게임 오브젝트 활성화를 false..
[Hello 3D] Unity: 플레이어 스크립트 speed는 플레이어의 속도를 정해주기 위해 선언한 것 rigid는 플레이어의 물리적 계산을 해주기 위해 선언한 것 Gun은 플레이어가 장착하게 될 총의 정보를 가지고 있는 것 Start() 함수에서는 rigid와 gun을 플레이어가 가지고 있는 것으로 가져온다. Update() 함수는 Move() 함수와 Look() 함수 그리고 Shoot() 함수를 실행시킨다. 수평 입력을 xPos에 담고, 수직 입력을 zPos에 담는다. GetAxis로 선언하여 눌림의 정도에 따라 다르게 움직이는게 가능하게 한다. 입력받은 xPos와 zPos 이용하여 newVelocity를 만들어준다. 그리고 만들어지 newVelocity를 플레이어의 속도로 설정해준다. 마우스의 위치를 레이로 반환받고, 하늘 방향을 가리키는 크기가..
[Hello 3D] Unity: 게임 기획 스크립트 Player - 플레이어의 움직임, 총알 발사, 죽음, 회전 등에 대해서 다룬다. Enemy - 적의 움직임, 죽음을 다룬다. EnemySpawner - 적 생성에 대해 다룬다. Gun - 게임 시작 시 플레이어에게 총을 장착시키는 것에 대해 다룬다. GunController - 총 프리팹에 발사될 총알을 정해주고 총알을 발사하는 것에 대해 다룬다. Bullet - 총알에 대해 다룬다. 게임 오브젝트 설명 플레이어 플레이어는 총 생성 좌표와 몸통이 있다. 수평축 입력키와 수직축 입력키로 이동을 할 수 있다. 한 손에 총을 들고 있고, 총에는 총알이 나간다. 적 적은 몸통과 눈이 가지게 된다. 0.5초에 한 번씩 플레이어를 따라가고 바라본다. 플레이어가 발사하는 총알을 맞게 되면 적은 사라진다. ..

728x90