전체 글 (157) 썸네일형 리스트형 경문사 이공계대학수학 2판 10-2절 솔루션 경문사 이공계대학수학 2판 10-2절 솔루션 직접 푼 해설입니다. 경문사 이공계대학수학 2판 10-1절 솔루션 경문사 이공계대학수학 2판 10-1절 솔루션 직접 푼 해설입니다. 교재와 답안이 다를 경우 분홍색으로 체크해두었습니다. [유니티/연습 프로젝트] 걷기 모션, 공격 모션, 근접 공격 범위 설정 애니메이션 기본 상태인 Idle 애니메이션, 걷는 상태인 Walk 애니메이션, 공격 모션인 Attack 애니메이션을 추가했다. Bool 형 Walk, Attack 파라미터를 설정해서 Idle 상태에서 Attack 이 True 이면 Attack 애니메이션으로 Walk 가 True 이면 Walk 애니메이션으로 진행되고 반대의 경우 다시 Idle 로 돌아오게 설정하였다. 걷기 모션 스크립트에서 Animator 컴포넌트를 불러온 후 SetBool 함수를 통해서 파라미터를 컨트롤 해준다. 프레임이 Update 될 때 마다 Walk 함수는 항상 false 상태를 유지해서 화살표 키보드 입력을 받기 전에는 항상 Idle 상태를 유지한다. using System.Collections; using System.Colle.. [유니티] 오버랩 박스 (충돌 감지) 오버랩 박스 생성 하나의 오브젝트에 콜라이더를 2개 이상 적용하고 싶을 수도 있다. 이를테면 캐릭터의 공격범위나 감지범위 등을 설정할 때 필요할 것이다. 그러나 콜라이더를 2개 이상 적용할 수는 없다. OnCollisionEnter 함수나 OnTriggerEnter 함수가 제대로 작동하지 않을 수 있기 때문이다. 범위가 의도한 바와 달라진다던가 중복해서 함수가 실행된다던가 등의 문제가 발생한다. 그렇다면 어떻게 이를 해결해야 할까? 이럴 때 사용할 수 있는 것이 오버랩 박스이다. 2D에서 오버랩 박스를 만들기위한 코드는 다음과 같다. Collider2D[] collider2Ds = Physics2D.OverlapBoxAll(Pos.position, BoxSize, 0); OverlapBoxAll 함수는 .. [유니티] 애니메이션 전환 딜레이 제거 애니메이션 전환 딜레이 유니티에서 애니메이션을 전환할 때 진행하고 있던 애니메이션이 끝나지 않으면 딜레이가 발생할 수 있다. 하지만 애니메이션 설정을 통해서 딜레이를 제거할 수도 있다. 우선 Animator 창에 들어가서 딜레이를 제거하고 싶은 트랜지션을 클릭해준다. 트랜지션을 클릭하면 Inspector 창에서 Has Exit Time 체크박스를 해제해준다. 그리고 아래 타임테이블을 원하는 상태에 맞춰서 조정해준다. 나는 기본상태인 Idle 애니메이션에서 걸어가는 상태인 Walk 애니메이션으로 딜레이없이 바로 전환시키고 싶어서 0.00초에 즉시 Walk 애니메이션으로 전환하게끔 설정했다. [유니티] 애니메이션 애니메이션 유니티 엔진을 이용하여 오브젝트에 애니메이션을 추가하는 것도 가능하다. 먼저 Project에 Animation을 추가해준다. 그리고 추가해준 Animation을 적용시키고 싶은 오브젝트에 드래그&드롭한다. 그러면 해당 오브젝트에 적용시킬 애니메이션들을 관리할 수 있는 Animation Controller가 생성될 것이다. Animation 만들어준 애니메이션을 더블클릭하면 Animation 창이 뜰 것이다. 이 창을 열고 애니메이션을 추가할 오브젝트를 Hierarchy 창에서 클릭한다. 그리고 원하는 스프라이트 이미지를 넣어 애니메이션을 추가할 수 있다. 추가해준 스프라이트 이미지들은 재생되기를 원하는 시간에 드래그&드롭으로 배치할 수 있다. 다른 애니메이션들도 추가하고 싶다면 애니메이션을 추.. [유니티] 이미지 반전 (transform.localScale) transform.localScale transform.localScale 을 이용하면 오브젝트의 이미지를 확대, 축소 시키는 것이 가능하다. transform.localScale 의 값은 벡터로 설정되어 있어서 이 값을 원하는대로 바꿔주면 된다. 만약 이미지를 4배 크게 하고 싶다면 transform.localScale = new Vector2(2, 2); 라고 작성하면 된다. 따라서 아래 코드처럼 작성한다면 w 키를 입력받았을 때 오브젝트의 크기가 4배로 커진다. 그러나 localScale 은 벡터값일 뿐이므로 w 키를 여러 번 누른다고 해서 계속 커지지는 않는다. 벡터값은 변함없이 (2, 2) 이기 때문이다. void Update() { if (Input.GetKey(KeyCode.W)) trans.. [유니티/연습 프로젝트] 캐릭터 이동 소개 유니티 개발을 시작하기 앞서 공부를 위해 유니티 에셋스토어의 무료 에셋을 활용하였다. 컴포넌트 적용 게임 캐릭터인 Player 오브젝트에는 Rigidbody 2D 와 Box Collider 2D 컴포넌트를 적용해주었고 바닥에 해당되는 Ground 오브젝트에는 Box Collider 2D 컴포넌트만을 적용하였다. 바닥에도 Rigidbody 2D 컴포넌트를 적용하면 물리엔진의 영향을 받아 중력으로 인해 바닥이 게임화면 밖으로 떨어진다. 캐릭터 이동 캐릭터의 이동을 위해 좌, 우 화살표 키를 입력 받았을 때 transform.Translate 함수를 사용하여 오브젝트를 이동 시켰다. if (Input.GetKey(KeyCode.RightArrow)) transform.Translate(0.002f, 0,.. 이전 1 ··· 15 16 17 18 19 20 다음