이거 맞음?
--
public class CameraControl : MonoBehaviour
{
public float speed = 200f; // 마우스 속도
private float xRotate = 0f; // 상하제한
private float yRotate = 0f; // 좌우제한
void Start()
{
Cursor.lockState = CursorLockMode.Locked; // 버그방지
yRotate = transform.eulerAngles.y;
}
void Update()
{
// 마우스 위치에 속도 더하기
float mouseX = Input.GetAxis("Mouse X") * speed * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * speed * Time.deltaTime;
// 카메라에 적용
xRotate -= mouseY;
xRotate = Mathf.Clamp(xRotate, -90f, 90f);
yRotate += mouseX;
transform.localRotation = Quaternion.Euler(xRotate, yRotate, 0f);
}
}
--
public class CubeObj : MonoBehaviour
{
public Transform cameraTransform; // 메인카메라
private bool isHeld = false; // 잡았는지 트리거
public float distance = 2.5f; // 잡히는 위치
public float speed = 0.2f; // 가속도
public float moveSpd = 20f; // 따라붙는 최대속도
public float rotateSpd = 10f; // 회전속도
private Vector3 currentVelocity;
void OnMouseDown()
{
isHeld = !isHeld;
if (TryGetComponent(out Rigidbody rb))
{
rb.isKinematic = isHeld;
}
}
void LateUpdate()
{
if (!isHeld || cameraTransform == null) return;
// 업데이트는 항상 마지막에
MoveTarget();
RotateTarget();
}
void MoveTarget()
{
// 위치 게산
Vector3 targetPosition = cameraTransform.position + (cameraTransform.forward * distance);
transform.position = Vector3.SmoothDamp(
transform.position,
targetPosition,
ref currentVelocity,
speed,
moveSpd
);
}
void RotateTarget()
{
// 오브젝트가 카메라와 같은 방향을 보게 함
transform.rotation = Quaternion.Slerp(transform.rotation, cameraTransform.rotation, Time.deltaTime * rotateSpd);
}
}
--
카메라에 CameraControl 컴포넌트로 넣어주고
오브젝트에 CubeObj 컴포넌트로 넣어주면 된다
왜 복사가 똑바로 안되는거야
아니 이런거 맞아요!! 저때문에 이렇게까지 안하셔도 되는데 한번 해보겠습니다 감사합니다 - dc App
모르면 또 질문해라 즐개발 ㄱㄱ
궁금한게 물리관련은 Fixed에 하라고 하던데 lateupdate에 해도되는 이유가 먼가용? - dc App
@ㅇㅇ 맞음 물리관련 ( 충돌 ) 은 픽스드에서 하는게 좋음. 저건 이동이라 카메라 이동이 끝난 이후에 그 위치를 기준으로 받아오려고 라스트에 넣은거 ㅇㅇ - dc App
@ㅇㅇ 물리는 fixed가 맞지..저코드에서 물리는.없어보이는데 ㅇㅇ
아하 포지션 옮기는건 물리로 안치는군요 - dc App
@ㅇㅇ 저걸 집어들고 휘적거려서 다른 오브젝트랑 실시간으로 충돌해서 날려보내는 방식의 물리력을 행사하고 싶은게 아니라면 굳이? 라는 느낌 ㅇㅇ
감사해요 님아 결국엔 fixedupdate에서 물체를 움직이고 moveposition을 쓴게 문제였습니다 - dc App
으으.. 저도 비슷한 문제 겪고 있는데 Update에 cameraTransform.position 으로 해결하셨나영?
정확한 상황은 모르겠지만 집은 물체의 position변경으로 해결했습니다 글고 lateupdate에다가 했어요 - dc App