Unity 77

[Unity][방법] 에니매이션 합성하여 호출하는 방법

1. Animator 창에서 우클릭 2. motion 추가 3. 2개의 합성된 애니메이션 사용시 조절 파라미터 생성 4. 합성 애니메이션 소스에서 호출 (Mathf.Lerp는 부드러운 움직임을 위해) if (_moveToDest) { wait_run_ratio = Mathf.Lerp(wait_run_ratio, 1, 10.0f * Time.deltaTime); Animator anim = GetComponent(); anim.SetFloat("wait_run_ratio", wait_run_ratio); anim.Play("WAIT_RUN"); } else { wait_run_ratio = Mathf.Lerp(wait_run_ratio, 0, 10.0f * Time.deltaTime); Animator a..

Unity 2022.10.06

[Unity][방법] Object충돌(Collision)_3 Ray사용하여 마우스 클릭좌표 얻기

Local -> Word > ViewPort -> Screen(화면) Input.mousePosition; //스크린 좌표 픽셀좌표 Camera.main.ScreenToViewportPoint(Input.mousePosition); // 특정 픽셀의 비율좌표 Ray 사용권장 #region Ray 사용한방법 if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Debug.DrawRay(Camera.main.transform.position, ray.direction * 100.0f, Color.red, 1.0f); RaycastHit hit; if (Physics.Raycast(ray, o..

Unity 2022.10.05

[Unity][방법] Object충돌(Collision)_2 RaycastHit 레이저사용하기

RaycastHit[] hits; - 충돌된 오브젝트 변수 Physics.RaycastAll - 레이저 Debug.DrawRay(transform.position + Vector3.up, look * 10, Color.red); - debug를 통해 레이저 발사 방향 확인 void Update() { Vector3 look = transform.TransformDirection(Vector3.forward);//지역포지션 캐릭터 방향으로 레이저 발사를 위해. Debug.DrawRay(transform.position + Vector3.up, look * 10, Color.red);//debug를 통해 레이저 발사 방향 확인 #region 여러개 확인 RaycastHit[] hits; hits = Phys..

Unity 2022.10.05

[Unity][방법] Object충돌_1(Collision) OnCollisionEnter, OnTriggerEnter, OverlapSphere(설정반경오브젝트 확인) 방법

OnCollisionEnter OnCollisionEnter 보통 서든어택 같은 fps에서 사용할때 좋다. 총알이 맞은 후 행위 1) 나한테 혹은 상대에게 RigidBody가 있어야한다(IsKinematic : off) 2) 나한테 Collider가 있어야한다(IsTrigger : off) 3) 상대한테 Collider가 있어야한다(IsTrigger : off) IsKinematic - unity 물리엔진 사용유무 mass - 질량 public class TestCollision : MonoBehaviour { //1) 나한테 혹은 상대에게 RigidBody가 있어야한다(IsKinematic : off) //2) 나한테 Collider가 있어야한다(IsTrigger : off) //3) 상대한테 Coll..

Unity 2022.10.05

[Unity][방법] 프리팹 C#에서 생성 Instantiate

Instantiate(프리팹)를 사용하면 프리팹 객체를 인스턴스화 할 수 있다. public GameObject prefab; void Start() { Instantiate(prefab); } Destory(프리팹, 몇초후 사라질지)를 사용하면 프리팹 객체 인스턴스 메모리를 해제할 수 있다. public GameObject prefab; GameObject tank; void Start() { tank= Instantiate(prefab); Destroy(tank, 3.0f); } 프로젝트의 규모가 컨진다면 프리팹을 GameObject에 직접 연결하여 사용하기 힘들어진다. 그렇기 때문에 Resources파일에 Load를 사용하여 프리팹을 연결하여 사용한다. Resources파일에는 소스를 제외한 모든 ..

Unity 2022.10.04