게임에 있어서 움직인다는 것은 가장 중요한 것이다. 시간과 공간이 있어 게임뿐만아니라 이 물질세계가 구현이 되는 것이고,그것은 지배할 수 있다는 것은 신의 권능을 위협한다는 것.그러므로 우리는 이 작고 거대한 세계를 지배하기 위한 첫번째 수단으로 시간과 공간을 지배해야만 하는 것이다....권력에 대한 야망이... 우리의 전두엽에서 비 개소리 그만 집어 치우고유니티에서는 포지션을 컨트롤 할 수 있는 방법이 상당히 여러가지가 있습니다.그 중에서 대표적인 것들을 몇 개 꼽아서스크립트와 영상으로 비교해서 보여드리겠습니다. 영상부터 보시죠. 총 7개의 움직임인데요,딱봐도 눈에 띄는 게 두 가지가 있죠.어떤 게 어떤 방식으로 이동했는지 한 번 맞춰보세요.스크립트 올려드릴게요.다들 업데이트 문에서 움직이게끔했는데타입..
RotateAround는 흔히 공전으로 설명되지만 그냥 사용해버리면 생각과 다른 결과가 나오기 일쑤입니다. 12345678910111213141516using System.Collections;using System.Collections.Generic;using UnityEngine; public class gonjun : MonoBehaviour { public float speed; public Transform target; void Update () { // 버전 1 (지구와 달에붙임) -> 잘못된 결과가 나온다. (지구의 움직임을 달이 고려하지 않기 때문) transform.RotateAround(target.transform.position, Vector3.up, speed * Time.del..
혼란하다 혼란해 유니티 에셋스토어의 공짜 모델인 좀비를 가지고 간단한 게임을 만들어봤습니다.좀비 에셋은 여기서 받으실 수 있어요!https://www.assetstore.unity3d.com/kr/?stay#!/content/30232 어떻게 진행되냐면 게임을 실행하면 좀비프리팹을 생성해서 랜덤으로 맵에 뿌려주고 캐릭터는 이동과 점프만 해주면 좀비가 가까이있으면 알아서 달려가서 자동으로 전투를 행합니다.좀비는 세대 때리면 죽고,죽을 때 땅에 몸이 묻히는 버그가 있지만 애니메이션의 문제니까 그냥 냅뒀습니다 ㅎㅎ 그리고 캐릭터의 주변을 펫 개념으로 뭔가가 공전하고 있고아무런 영향은 끼치지 못합니다.해당 부분은 로테이트어라운드로 했습니다. 몬스터 찾는 건몬스터 전체에 접근해서 가장 가까운 녀석을 골라서 걔가 ..
유니티에서 이동을 위해서 자주 사용하는 메서드 중에 하나인 Transform.Translate는 매개변수를 딱 두 가지 갖고 있습니다. 하나는 익히 알다시피 얼마나 이동할 것인지의 벡터이고 하나가 어느 축을 기준으로 할것이냐인데요 12public void Translate(Vector3 translation);public void Translate(Vector3 translation, Space relativeTo = Space.Self);cs 트랜스레이트의 두 가지 오버로딩입니다. 이 중 Space는 enum값으로 두 개의 요소로 구성되어 있습니다.Space.Self와Space.World입니다. 셀프는 자기 자신을 축으로 이동합니다.즉 자신이 각도가 틀어져있으면 그 틀어진 상태를 정방향으로 보고 이동한..
해당 값의 정확한 공식을 유도하지 않고 쉽게 설명하겠습니다.값이 다르고 그런게 있겠지만요. 그런거 신경 쓰지 않고 설명할 수 있습니다. Atan()메서드를 쓸 때! 매개변수는 float f 하나가 들어갑니다!그래서 매개변수를 이렇게 써야하죠 Mathf.Atan( y의길이 / x의길이 ); 근데 사칙연산을 하실 줄 아는 분들은 다 아시겠지만분모가 0이면 무한대가 됩니다.따라서 나눗셈에서 0은 쓰지말라고 그렇게 선생님께 배웠지요. 그런데 x가 0인경우가 당연히 있기 마련이기 때문에해당 문제를 방지 하기 위해서 2버전을 만든겁니다. Atan2는 이렇게 사용합니다. Mathf.Atan2(y의길이, x의길이); 이렇게 되면 나눗셈을 코드상에서 직접하지 않으니까안전하게 사용할 수 있겠죠? 끝.
유니티3D에서!맵이 있고!캐릭터 모델이 있으면!캐릭터컨트롤러 컴포넌트 추가하고!이 밑의 스크립트를 입맛에 맞게 추가하시면화살표 및 W,A,S,D 키와 스페이스 바를 통해서움직임을 구현합니다.이 때, 스피드와 점프 속도 등은 알아서 구현해주세요.중력적용입니다. 아 cc는 인스펙터창에서 캐릭터컨트롤러 스크립트를 할당해줘야합니다. 12345678910111213141516171819202122232425262728using System.Collections;using System.Collections.Generic;using UnityEngine; public class Hero : MonoBehaviour { [SerializeField] CharacterController cc; public float s..
유니티용입니다. 싱글톤을 사용해서 접근할 수 있게 했습니다. 단 하나의 게임오브젝트에 컴퍼넌트로 올려놓으시고 TimerManager.Instance.StartTimer(초수, 액션); 으로 사용하시면 됩니다. 퍼포먼스 테스트를 조금 진행해봤는데,사용 상에 문제가 되지는 않은 것으로 보입니다. 모바일 기기 테스트를 해본 것은 아니니까...혹시 사용해 보시고 개선이 필요한 걸 느끼시면 알려주세요. 근데 유니티는 왜 타이머를 안 만들까요게임에서 시간체크 하는 게 얼마나 많은데; 12345678910111213141516171819202122232425262728293031323334353637383940414243using System.Collections;using System.Collections.Gene..
간단간단한 캐릭터와 오브젝트 모델을 이용해서 움직임과 공격을 구현했습니다. 내용은 별거 없고W,A,S,D 로 이동하고 마우스로 각도를 조절하며 space bar로 공격을 합니다. 3D로 상용 서비스를 해본적이 없기 때문에 그리 익숙하진 않네요.그래도 재밌는 것 같습니다. 역시 3D가 재밌어요. 빌드한 파일을 올려볼게요. 다음 링크에서 받으세요. 공부한다고 이것저것 에셋을 받아놔서 생각보다 용량이 되네요. https://drive.google.com/file/d/1CEs_V1nCGrJHE-OO49EFaY_T9GrZL4xr/view?usp=sharing 영상도 올릴게요 아주 간단한 것들만 썼습니다.코드도 별로 없네요 고민한 부분은 공격체크 부분인데,실험적으로 해봤습니다.트리거 충돌체를 만들어서공격 시에만 반..
함께 만든 C# 기본문법에 관한 문제입니다.오류도 있을 가능성이 있고 좋지 않은 문제도 있을 수 있으니의견 있으시면 언제든지 리플 달아주세요! 1. 다음 코드에서 answer의 값은?12int answer = (13%3)*3 - 9;answer의 값은?cs 답 : -6 2. 개체를 만들고 생성자를 호출하는 연산자는 ? 답 : new 3. 반복문을 즉시종료시키는 문 키워드는 무엇일까요? 답 : break 4. for문에서의 흐름 순서를 말해주세요. 답 : 초기화 -> 상태에서 상태확인하고 true면 본문실행 ->반복 -> 상태 ,false면 반복문 종료 5. 다음 코드에서 Test 생성자 호출시 answer의 값은? 123456789101112class Test{ public enum ItemType { ..