[패스트캠퍼스 수강 후기] 올인원 패키지 : 유니티 포트폴리오 완성 100% 환급 챌린지 43회차 미션 시작합니다.
04. 배틀로얄 - 31, 32 번을 진행합니다.
직교 함수 구하기에 대한 설명입니다.
아래 Rotating() 함수에서 right를 구할 때 사용하는 내용입니다.
저번 시간에 계속하여 MoveBehaviour 작업을 계속 이어나갑니다.
public class MoveBehaviour : GenericBehaviour
{
// 변수선언과 Start() 함수 구현..
// 3D 캐릭터의 이동은 우선 이동방향으로 회전하고 이동..
Vector3 Rotating(float horizontal, float vertical) {
Vector3 forward = behaviourController.playerCamera.TransformDirection(Vector3.forward);
forward.y = 0.0f;
forward = forward.normalized; // Normal Vector -> 단일 Vector
Vector3 right = new Vector3(forward.z, 0.0f, -forward.x);
Vector3 targetDirection = Vector3.zero;
targetDirection = forward * vertical + right * horizontal;
if (behaviourController.IsMoving() && targetDirection != Vector3.zero) {
Quaternion targetRotation = Quaternion.LookRotation(targetDirection);
Quaternion newRotation = Quaternion.Slerp(behaviourController.GetRigidbody.rotation, targetRotation, behaviourController.turnSmoothing);
behaviourController.GetRigidbody.MoveRotation(newRotation);
behaviourController.SetLastDirection(targetDirection);
}
if (!(Mathf.Abs(horizontal) > 0.9f || Mathf.Abs(vertical) > 0.9f)) {
behaviourController.Repositioning();
}
return targetDirection;
}
private void RemoveVerticalVelocity() {
Vector3 horizontalVelocity = behaviourController.GetRigidbody.velocity;
horizontalVelocity.y = 0.0f;
behaviourController.GetRigidbody.velocity = horizontalVelocity;
}
void MovementManagement(float horizontal, float vertical) {
if (behaviourController.IsGrounded()) {
behaviourController.GetRigidbody.useGravity = true;
}
else if (!behaviourController.GetAnimator.GetBool(jumpBool) && behaviourController.GetRigidbody.velocity.y > 0) {
RemoveVerticalVelocity();
}
Rotating(horizontal, vertical);
Vector2 dir = new Vector2(horizontal, vertical);
speed = Vector2.ClampMagnitude(dir, 1f).magnitude;
speedSeeker += Input.GetAxis("Mouse ScrollWheel");
speedSeeker = Mathf.Clamp(speedSeeker, walkSpeed, runSpeed);
speed *= speedSeeker;
if (behaviourController.IsSprinting())
speed = sprintSpeed;
behaviourController.GetAnimator.SetFloat(speedFloat, speed, speedDampTime, Time.deltaTime);
}
private void OnCollisionStay(Collision collision) {
isColliding = true;
if (behaviourController.IsCurrentBehaviour(GetBehaviourCode) && collision.GetContact(0).normal.y <= 0.1f) {
float vel = behaviourController.GetAnimator.velocity.magnitude;
Vector3 targetMove = Vector3.ProjectOnPlane(myTransform.forward, collision.GetContact(0).normal).normalized * vel;
behaviourController.GetRigidbody.AddForce(targetMove, ForceMove.VelocityChange);
}
}
private void OnCollisionExit(Collision collision) {
isColliding = false;
}
타이핑 따라하기 ㅜ.,ㅡ;
private void Update() {
if (!jump && Input.GetButtonDown(ButtonName.Jump) && behaviourController.IsCurrentBehaviour(behaviourCode) && !behaviourCode.IsOverriding())
jump = true;
}
public override void LocalFixedUpdate() {
MovementManagement(behaviourController.GetH, behaviourController.GetV);
JumpManagement();
}
}
따라하다..토..할..뻔.. ^^; 수강타겟층이 애매한것 아닐까 싶어요.. 초중타겟으로는 설명할게 너무 많고 중급 이상 타겟으로 하자니 일일이 설명할 게 없는데 초보자 교육이 아니다보니 어쩔 수 없이 코드 따라하기가 되버리는 듯합니다..
물론 코드다 다 말해준다 하지만... 이럴거면 준비된 코드를 가지고 설명을 자세히 해주시는게 좋을 듯도 ㅠ
Freeze Rotation [v]X [v]Y [v]Z를 하여 여기저기로 이동되는 것을 막아줍니다.
유니티 플레이를 해보면 땅에서 열심히 뛰어가는 캐릭터를 볼 수가 있습니다 ^^~
Aim Behaviour 제작을 시작합니다.
우선 이제 실제로 게임을 플레이할 Scene을 불러와서 여기에서 플레이어 및 카메라를 세팅해 줍니다.
그리고 플레이를 해보면 걷고 뛰도 잘 이동하는 것을 볼 수 있습니다.
AimBehaviour 스크립트를 생성하고 코딩을 ㅠ 시작합니다.
/// <summary>
/// 마우스 오른쪽 버튼으로 조준. 다른 동작을 대체해서 동작하게 됩니다.
/// 마우스 휠 버튼으로 좌우 카메라 변경
/// 벽의 모서리에서 조준할 때 상체를 살짝 기울여주는 기능.
/// </summary>
public class AimBehaviour : MonoBehaviour
{
}
위에서 사용되는 Bone 정보를 볼 수 있는 Unity 화면입니다. (초반에 설명했지만 재확인 ㅎ)
<위의 코드들은 제가 보면서 주요한 함수, 코드를 확인하기 위해 타이핑한 용도로, 전체 소스코드가 아님에 주의해 주세요. 전체 코드는 교육 수강을 하면 완벽하게 받으실 수가 있답니다 ^^>
패스트캠퍼스 - 올인원 패키지 : 유니티 포트폴리오 완성 bit.ly/2R561g0
'[컴퓨터] > 웹 | 앱 | 게임 개발' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 올인원 패키지 : 유니티 포트폴리오 완성 100% 환급 챌린지 45회차 미션 (0) | 2020.12.02 |
---|---|
[패스트캠퍼스 수강 후기] 올인원 패키지 : 유니티 포트폴리오 완성 100% 환급 챌린지 44회차 미션 (0) | 2020.12.01 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 유니티 포트폴리오 완성 100% 환급 챌린지 42회차 미션 (0) | 2020.11.29 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 유니티 포트폴리오 완성 100% 환급 챌린지 41회차 미션 (0) | 2020.11.28 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 유니티 포트폴리오 완성 100% 환급 챌린지 40회차 미션 (0) | 2020.11.27 |