유니티 2D 모바일 게임 개발을 공부하기 위해 도움될 만한 서적, 유튜브 채널, 블로그를 아래와 같이 추천드립니다. [서적] "유니티 교과서 - 그림으로 이해하고 만들면서 익히는" - 길벗유니티 책으로 가장 난이도가 쉽습니다."레트로의 유니티 게임 프로그래밍 에센스 - C#으로 배우는 입문부터 4가지 게임 제작까지" - 한빛미디어기초부터 심화까지 다룹니다...
제가 플레이어에 캡슐콜라이더 컴포넌트 추가하고 wall오브젝트에 box콜라이더 추가한다음에 rigidbody설정에 collision Detection도 Continuous로 해줬는데도 플레이어가 벽에 가서 비비적대면 천천히 뚫어버리는 상황이 발생하는데 해결법이 있을까요 플레이어 이동방법으론 transform.position을 증가시키는 방법으로 하였습니다. 이유를 좀 알아보니까 속도가 빨라서 그런거 같은데 이게 해결방법이 없을까요? Player 스크립트 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public float speed; float hAxis; float vAxis; bool wDown; Vector3 moveVec; Animator anim; // Start is called before the first frame update void Awake() { anim = GetComponentInChildren<Animator>(); } // Update is called once per frame void Update() { hAxis = Input.GetAxisRaw("Horizontal"); vAxis = Input.GetAxisRaw("Vertical"); wDown = Input.GetButton("Walk"); moveVec = new Vector3(hAxis, 0, vAxis).normalized; transform.position += moveVec*speed*Time.deltaTime; transform.position += anim.SetBool("isRun", moveVec != Vector3.zero); anim.SetBool("isWalk", wDown); } }
유니티에서는 충돌 감지와 처리를 위해 물리 엔진을 사용합니다. transform.position을 직접 수정하면 물리 엔진을 우회해서 움직이게 됩니다. 이 경우, 충돌이 제대로 처리되지 않을 수 있습니다. 게임 오브젝트를 물리 엔진을 통해 움직이려면 Rigidbody 컴포넌트의 메서드를 사용해야 합니다. Rigidbody의 velocity 속성을 수정하...
아래와 같은 방법들로 콜라이더 터널링 현상을 최소화하는 방법들이 있습니다. Collision Detection 모드 변경: Rigidbody의 Collision Detection 모드를 Continuous Dynamic으로 설정해보세요. 이 모드는 연속 충돌 감지를 활성화하여 터널링을 감소시킬 수 있습니다. 그러나 이 모드는 연산 비용이 높아질 수 있으므로...
Esprite.color = new Color(1f, 0f, 0f, 1f); 코드는 캐릭터의 스프라이트 색상을 빨강으로 바꾸는 코드입니다. 그러나 만약 스프라이트에 적용된 텍스처가 색상 변경을 지원하지 않는다면 코드가 작동하지 않을 수 있습니다. 예를 들어, 스프라이트의 텍스처가 흑백 또는 알파 채널만 가진 텍스처인 경우 색상 변경이 제대로 적...