
                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);
                }
지표면에 좌우 회전하는 몸체와 수직 각도를 맞추는 포신 부분 이동을 분리해서
터-렛스럽게 움직이는 짧막한 코드.

요렇게 생긴 구조에서 돌아가도록 며칠을 삽질하였다.
요즘 집중이 잘 안되긴 하지만 고작 이걸로 며칠 하다니
나란 코드몽키...
 
						
						
					
 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
						 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
						
						
					 
