전체 글 썸네일형 리스트형 3D 쿼터뷰 액션게임 - 코드 정리 player.cs 의 스크립트를 정리하자! 아래 스크립트는 정리 전의 스크립트 파일입니다. public class Player : MonoBehaviour { public float speed; float hAxis; float vAxis; bool wDown; Vector3 moveVec; Animator anim; void Awake(){ anim = GetComponentInChildren(); } void Update(){ hAxis = Input.GetAxisRaw("Horizontal"); vAxis = Input.GetAxisRaw("Vertical"); wDown = Input.GetButton("Walk"); moveVec = new Vector3(hAxis, 0, vAxis).norma.. 더보기 3D 쿼터뷰 액션게임 - 플레이어 이동 애니메이션, 카메라 이동 애니메이션 적용 생성된 animator 를 하이어라키에서 플레이어 프리팹의 자식 오브젝트의 인스펙터에 component로 Add. animator 창을 열어서 idle, Walk, Run 애니메이션을 추가하고 transition 으로 연결하기. transition 사이를 조정해줄 파라미터(조건) isWalk, isRun 생성. 각 transition에 맞는 파라미터를 각 transition에 추가. player.cs 작성 SetBool //벡터이동 //삼항연산자를 사용해서 걷기wDown true면 걷기 속도-false면 Run속도 transform.position += moveVec * speed * (wDown ? 0.3f : 1f) * Time.deltaTime; 플레이어가 지정된 키 입력에 따라 방.. 더보기 3D 쿼터뷰 액션게임 - 플레이어 이동 플레이어의 기본 이동 구현 플레이어 프리팹을 씬 뷰에 넣고 rigidbody, capsule collider, player.cs 컴포넌트를 Add. 이동 중, 관성에 의한 넘어짐을 없애기 위해 rigidbody의 Freeze rotation X, Z 축을 체크. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public float speed; float hAxis; float vAxis; Vector3 moveVec; void Start() { } void Update() { hAxis = Input.GetAxisRaw("Horizontal").. 더보기 unity Vector 수학( 내적 Dot, 외적 Cross ) 유니티를 위해 벡터를 반드시 이해해야합니다. 2D 벡터는 X, Y로 이루어져 있씁니다. 평면 도형 3D 벡터는 X,Y,Z 로 이루어져 있습니다. 큐브 유니티의 XYZ 체계는 아래의 손 사진처럼 왼손 엄지와 검지를 펼치면 알 수 있습니다. 내적은 두 벡터를 취하며 그로부터 단일 값인 스칼라를 산출합니다. 두 벡터 A와 B의 내적을 구하기 위해 각 벡터의 X,Y,Z를 각각 곱하여 합산합니다. 이 곱셈을 통해 두 벡터에 대한 정보를 알 수 있습니다. 지정된 벡터 2개의 내적이 0 이면 두 벡터는 직교합니다. 하지만 위 사진의 벡터 A, B의 내적은6. 0과 같지 않으므로 두 벡터는 직교하지 않습니다. 만약 벡터 A가 0,7,0 이였다면? 내적이 0이므로 두 벡터는 서로 직교하겠죠. 위 사진 속 두 벡터는 지금.. 더보기 unity Update FixedUpdate Update FixedUpdate Update 함수는 사용중인 모든 스크립트에서 프레임당 1번씩 호출됩니다. 그렇기때문에 정기적인 조정이 필요한 모든 것이 Update 함수에서 이루어지죠. using UnityEngine; using System.Collections; public class UpdateAndFixedUpdate : MonoBehaviour { void FixedUpdate () { Debug.Log("FixedUpdate time :" + Time.deltaTime); //일정한 타임라인따라 호출됨. //호출과 호출 사이의 시간이 동일함. //fixedUpdate가 호출된 직후 필요한 모든 물리적 계산들이 진행됨. //즉, 물리적 오브젝트에 영향을 미치는 요소는 FixedUpdate 함.. 더보기 unity Awake and Start Start와 Awake 함수는 스크립트가 실행될 때 자동으로 호출되는 함수입니다. Awake 함수는 스크립트 컴포넌트가 비활성화된 경우에도 먼저 호출되므로 스크립트와 초기화 사이의 레퍼런스 설정하는데에 많이 활용합니다. Start는 Awake 가 호출된 후 첫번째 Update 직전에 호출되지만 스크립트 컴포넌트가 활성화된 경우에만 호출됩니다. 즉, 스크립트 컴포넌트를 활성화하고 Start를 활성화해서 작업을 처리할 수 있습니다. 이런 식으로 초기화 코드의 시작을 정말 필요로 할 때까지 지연시킬 수 있습니다. 예를 들어 적 캐릭터가 게임에 진입하고 Awake를 사용해서 적에게 일정한 탄약을 할당하지만 스크립트 컴포넌트를 활성화하고 Start를 사용해 정해진 타이밍에만 사격이 가능하게 만들 수 있습니다. S.. 더보기 unity 변수 및 함수의 범위와 접근성 Scope and Access modifiers 클래스에서 정의되는 변수는 함수에서 정의되는 변수와 달리 그에 해당하는 접근 한정자가 있습니다. Access modifier는 데이터 타입 앞에 배치되는 키워드이며, 변수 또는 함수가 보일수 있는 위치를 정의하데 활용됩니다. Access modifiers Public, Private 보통 다른 스크립트에서 변수나 함수에 접근해야하는 경우엔 public. 그외에는 private. 변수 1를 클래스에서 public으로 선언하게 되면, 클래스의 밖에서 변수에 접근할 수 있습니다. 또한 변수 1는 인스펙터의 컴포넌트에 표시되어 수정할 수 있습니다. 이렇게 선언된 변수 1은 스크립트 내에서 특정 값으로 초기화되더라도 인스펙터에서 작성된 값으로 오버라이드됩니다. 하지만 Start, Awake 같은 함수에서 변수가 .. 더보기 unity 루프 loop 루프는 액션을 반복하는 수단 - for 루프, while 루프, DoWhile 루프 1. while 조건이 충족되면 반복합니다. using UnityEngine; using System.Collections; public class WhileLoop : MonoBehaviour { int cupsInTheSink = 4; void Start () { while(cupsInTheSink > 0) { Debug.Log ("I've washed a cup!"); cupsInTheSink--; } } } 2. DoWhile 반복을 한번 하고나서 조건을 충족하는지 검사합니다. ; 세미콜론이 존재하므로 조심합니다. using UnityEngine; using System.Collections; public clas.. 더보기 이전 1 2 3 4 5 다음