게임

터렛 관절 무-빙-

by 조루나 posted Jul 23, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄


Honeycam 2021-07-23 02-23-57.gif2.6 MB

 

 

                Vector3 targetDirection = transform.InverseTransformPoint(currentTarget.transform.position);
                targetDirection.z = 0;
                float zAngleDiff = Vector3.SignedAngle(rotateAxisZ.up, targetDirection, -transform.forward);
                if (Mathf.Abs(zAngleDiff) > 90) zAngleDiff = Vector3.SignedAngle(-rotateAxisZ.up, targetDirection, -transform.forward);
                float zRot = rotateSpeedZ * Time.fixedDeltaTime;
                if (Mathf.Abs(zAngleDiff) <= zRot) {
                    rotateAxisZ.Rotate(0, 0, -zAngleDiff);
                } else {
                    rotateAxisZ.Rotate(0, 0, zRot * -Mathf.Sign(zAngleDiff));
                }

                targetDirection = transform.InverseTransformPoint(currentTarget.transform.position);
                float xAngleDiff = Vector3.SignedAngle(rotateAxisX.forward, targetDirection, -rotateAxisZ.right);
                float xRot = rotateSpeedX * Time.fixedDeltaTime;
                if (Mathf.Abs(xAngleDiff) <= xRot) {
                    rotateAxisX.Rotate(-xAngleDiff, 0, 0);
                } else {
                    rotateAxisX.Rotate(xRot * Mathf.Sign(-xAngleDiff), 0, 0);
                }

 

지표면에 좌우 회전하는 몸체와 수직 각도를 맞추는 포신 부분 이동을 분리해서

터-렛스럽게 움직이는 짧막한 코드.

 

image.png

 

요렇게 생긴 구조에서 돌아가도록 며칠을 삽질하였다.

요즘 집중이 잘 안되긴 하지만 고작 이걸로 며칠 하다니

나란 코드몽키...



Articles

1 2 3