반응형
리지드바디 (Rigidbody)
Rigidbody 는 GameObject 가 물리 제어로 동작하게 한다. 리지드바디는 힘과 토크를 받아 오브젝트가 사실적으로 움직이도록 해준다. 리지드바디가 포함된 모든 게임 오브젝트는 중력의 영향을 받아야 하며 스크립팅을 통해 가해진 힘으로 움직이거나 NVIDIA PhysX 물리 엔진을 통해 다른 오브젝트와 상호 작용해야 한다.
리지드바디없이 중력주기
별건아니지만.. 그.. 팀원이 리지드바디 컴포넌트는 무겁다고 쓰지말자는 말을 했어가지고 그거 사용하지않고 구현을 해봤다. 흠. 쓰고싶음.
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerMovement : MonoBehaviour
{
// 리지드바디 없는거
[Header("Movement")]
private float moveSpeed = 5.0f;
private Vector2 curMovementInput;
[Header("Gravity")]
private float gravity = -8.0f;
private Vector3 velocity;
private bool isGrounded;
private void FixedUpdate()
{
Move();
Gravity();
CheckGrounded();
}
public void OnMoveInput(InputAction.CallbackContext context)
{
if(context.phase == InputActionPhase.Performed)
{
curMovementInput = context.ReadValue<Vector2>();
}
else if(context.phase == InputActionPhase.Canceled)
{
curMovementInput = Vector2.zero;
}
}
private void Move()
{
Vector3 dir = (transform.forward * curMovementInput.y + transform.right * curMovementInput.x).normalized;
dir *= moveSpeed * Time.deltaTime;
transform.position += dir;
}
// 중력 계산
private void Gravity()
{
if(!isGrounded)
{
// 바닥에 닿아 있지 않을 때 중력 적용
velocity.y += gravity * Time.deltaTime;
}
// 속도를 위치에 적용
transform.position += velocity * Time.deltaTime;
}
private void CheckGrounded()
{
isGrounded = Physics.Raycast(transform.position, Vector3.down, 1.1f);
if(isGrounded && velocity.y < 0)
{
velocity.y = 0;
}
}
}
오늘의 회고
기획을 3번 갈아엎고, 방치형 팀에 합류했다가 뒤늦게 저번주에 나오게되면서 우리조는 엄~~청 늦어지게 되었다.
방치형 나오기전에 거의 구현이 됐었기때문에 서로 이걸 나가도 될라나 하면서 눈치를 봤는데 자유도 없이 우리 아이디어가 빠꾸만 당하고 정해진 것만 해야한다면 그냥.. 배고픈 소크라테스가 되자고하고 나와버렸다.
게임 구현까지 됐다가 우리는 일하기전 최종 프로젝트만큼은 우리가 하고싶은 프로젝트를 하자! 하면서 엎었기 때문에 늦게 시작했지만 애정을 가지고 하니 빠르게 진행됐다. 레퍼런스 게임으로 계획한 게임을 거의 다 따라한 수준이 되었다.
담당 튜터님도 진짜 좋은 아이디어라고 칭찬해주시고 뿌듯하다.
왜냐면 방치형 나오자고도, 아이디어도, 스토리도 내가 짰기때문이다. ㅎㅎ
행복한 개발이 됐으면 좋겠다 야호
반응형
'Record > TIL' 카테고리의 다른 글
[Unity] 코루틴으로 스프라이트 작동시키기 (3) | 2024.07.17 |
---|---|
[Unity] 마우스 포인터 시점에 따라 화면 움직이게 하기 (0) | 2024.07.16 |
[Unity] 폴리브러쉬(Polybrush) (2) | 2024.07.13 |
[Unity] 스테이트 머신 FSM (0) | 2024.07.11 |
[Unity] 플레인 vs 쿼드 (0) | 2024.07.11 |