유니티게임프로젝트

유니티 에셋스토어에서 다운받은 우주과학 주변환경을 사용했다가 생각보다 오버워치와 매칭이 안되어다시 만들었다. 다음 주까지는 맵을 전부 다 만들예정이다.생각보다 오래걸린다...
현재 솔져의 하반신을 아바타마스크를 사용하여 걷기, 앉기, 점프 등에 대한 애니메이션이상체와 별개로 실행되는 작업을 했다.그러나 앉을 때 캐릭터는 앉는 모션을 취하지만 하반신만 작동되어 캐릭터가 공중에 떠있는 상태가 된다.그래서 기존에 작업했던 코드를 일부 수정하였다.원래 좌측 컨트롤키를 누르면 유닛카메라의 로컬포지션 y값이 앉기모드의 y값으로 바뀌게 만들었다.이젠 그럴 필요없이 해당 캐릭터의 포지션 y값을 앉기모드 y값으로 바꿔주었다.카메라는 고정되어있고, 캐릭터의 포지션 y값만 변경되어앉기 애니메이션이 실행될 때 더이상 캐릭터는 공중에 떠있지 않으며,카메라와 캐릭터의 포지션y값이 따로 설정되지 않게 되었다.[UnitController.cs] [Header("Unit Y Pos")] // 앉..
기존에 만들지 못했던 오버워치 솔져의 생체장 스킬 기능을 구현했습니다.기존 코드에서는 UnitController클래스를 가져와서 UnitController의 currHp를 증가시켜주도록 만들었습니다.하지만 솔져는 프리팹이었고, 해당 프리팹에 있는 UnitController를 연결시켜주는 방식을 사용한 것입니다.그래서 생체장 스킬을 사용해도 인식을 할 수 없었던 것입니다.       [ESkill.cs]public class ESkill : MonoBehaviour{ public float numHeal = 20f; private void OnTriggerStay(Collider other) { if (other.gameObject.tag == "Unit") ..
캐릭터(솔져) 스킬 만들기솔져의 스킬 기능을 구현해봤습니다. 좌shift - 달리기(이속up)E스킬 - 생체장(자힐)마우스 우클릭 - 나선로켓 1) 달리기는 캐릭터의 이동속도를 높여주고, 달리기 애니메이션을 플레이해줍니다.2) 생체장스킬은 생체장과 비슷한 오브젝트를 만들어서 캐릭터 포지션에 설치한 후 캐릭터의 부족한 체력을 채워줍니다.3) 나선로켓은 일정속도와 일정회전력을 가지면서 나아가고, 오브젝트와 닿았을 때 사라지며 이펙트를 플레이합니다. 직격뎀과 거리별 스플래쉬데미지를 아직 구현하지 않아서 나선로켓은 미완성입니다.         [SkillManager.cs]public class SkillManager : MonoBehaviour{ UnitController unitController; ..
1. 점프스페이스바를 누르면 캐릭터가 점프를 하도록 만들었습니다.기존에는 바닥 오브젝트에 "Ground" 혹은 "Floor"이라는 태그를 달아주고,OnCollisionStay함수를 호출하여 캐릭터가 해당 태그를 가지고 있는 태그에 닿고 있다면점프를 가능하게 하고, 아니라면 점프를 하지못하게 설정했습니다.이렇게하면 점프 시 캐릭터가 공중으로 띄워져 바닥에 닿지않아 공중에서 중복점프가 안되게 만들 수 있습니다.현재있는 바닥이라곤 평평한 바닥 하나만 존재하기에 이렇게 만들어도 충분합니다.하지만 오버워치처럼 바닥과 벽이 수많이 존재하는 커다랗고 복잡한 맵에서 점프를 했는데약간 높이가 있는 바닥과 캐릭터의 얼굴이나 몸통이 닿아버리면 중복점프가 가능할 수도 있다는 생각을 했습니다.그래서 찾은 해결방법이 Raycas..
1. 캐릭터 이동1)솔져 캐릭터를 만들것이기 때문에 하이라키창에 솔져라는 이름의 빈 오브젝트를 생성하고받아온 Y bot 아바타를 자식 오브젝트로 넣어줍니다. 2)부모 오브젝트인 솔져의 컴포넌트에리지드바디와 캡슐콜라이더를 추가해줬습니다.리지드바디는 물리효과를 주기 위함과 동시에 이동구현 코드에 필요합니다.캡슐 콜라이더는 충돌효과를 위해 필요합니다. 3)UnitController라는 유닛의 기능을 담당할 스크립트를 새로 만들었습니다.여기서 캐릭터의 이동과 카메라의 회전 등을 담당할 것입니다.카메라를 담당하는 스크립트를 따로 만들어도되지만 유닛전용 카메라이기 때문이기도 하고 카메라 시점에따라 유닛이 바라보는 방향이 달라져야 하기때문에 그냥 하나의 스크립트에 작성했습니다. [UnitController.cs]pu..
1. 사운드 세팅1)사운드 세팅 UI추가,배경음과 효과음 이미지를 추가,설정, 배경음, 효과음, 나가기 이미지는 Flacticon사이트에서 받아와Sprite로 바꿔서 사용했습니다. 2) 골드메탈님의 사이트에서 가져온 배경음, 효과음 추가.AudioManager라는 새 오브젝트를 하이라키에 생성해주고,배경음 오브젝트, 효과음 오브젝트를 각각 생성해준 후 드래그 앤 드랍으로 적용시켰습니다.2. 배경음, 효과음 온/오프 조작여기서 체크이미지는Toggle로 만들었고사운드 세팅 이미지의 자식으로 넣어줬습니다. (UI - Toggle) Toggle은 클릭할 때마다 체크 표시가 온/오프가 됩니다.이걸로 오디오의 온/오프 시스템을 추가할 것입니다. [GameManager.cs] public AudioSource ..
1. 점수 시스템과일이 합쳐질 때 레벨에 따라 점수가 추가되는 시스템을 만들었습니다. 1)점수UI를 만들어줍니다. 2)게임매니저에 점수UI의 텍스트를 드래그앤드랍합니다.게임매니저 스크립트에서네임스페이스에using.UnityEngine.UI, using TMPro 추가.멤버변수에    public TextMeshProUGUI txtScore 추가. 3)Update함수에서 실시간 점수 갱신.점수는 합쳐지고 레벨업할 때(Fruit.cs - LevelUpRoutine()) [GameManager.cs]void Update(){ txtScore.text = "Score: " + score.ToString();} [Fruit.cs]public void LevelUp() { isMerge = tru..
미리 만들어놓고 소개해드리기가 정말 송구스럽습니다. 1. 데드라인 오브젝트 추가앞서 소개한 바닥, 좌우 벽과 같은 방법으로 데드라인을 추가해줍니다.색상은 자유롭게 변경하시면 되고 투명도만 좀 조절해주면 더욱 그럴싸해집니다.<p style="text-align:..
[ 서론 ]최근에 수박게임을 하다가 만들게 되었습니다. 유튜브에 수박게임을 만든 사람이 있나 검색해보니 골드메탈님께서 이미 관련 영상을 올리셨더라구요. 처음부터 끝까지 한 번 봤고, 정말 많은 도움이 되었습니다. 코드를 작성하면서 다소 비슷하게 만들어버렸지만, 나중에 다른 게임을 만들 때 중요한 참고자료로 사용될 것이라 생각합니다. 만약 수박게임을 만드시는 분께서 이 글을 보신다면 당장 뒤로가기를 누르고 유튜브로 골드메탈님의 영상을 참고하시길 바랍니다. 감사합니다.<hr contenteditable="false" data-ke-type="horizontalRule" data-ke-s..
ForMan_
'유니티게임프로젝트' 태그의 글 목록