
프로젝트로 진행한 게임에서는 낙사요소가 존재했는데,
조금 더 재미를 주기 위해 땅을 자동으로 움직이게 하고 싶었다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LandMove : MonoBehaviour
{
Vector3 currentPos;
public float range=10f;
public float speed=1f;
void Start()
{
currentPos = transform.position;
}
void Update()
{
Vector3 v = currentPos;
v.y += range * Mathf.Sin(Time.time * speed);
transform.position = v;
}
}
땅 자체에 스크립트를 넣어주고 오브젝트의 y포지션을 Sin값으로 일정하게 변하게 해준다.
Mathf.Sin( radian or degree )
Mathf는 유니티에서 제공하는 수학 함수로, Sin은 -1~1값을 return 한다.
그래서 땅의 y값에 원하는 범위만큼의 값을 더해주고 빼주는 식으로 구현하는 것이다.
이를 활용해 상하운동뿐만아니라 좌우 등 다양한 수학적 운동을 구현해 줄 수 있다.
'Unity 포트폴리오 > 플젝2. 3D FPS게임' 카테고리의 다른 글
Unity FPS : enum Type으로 게임 모드 구분해주기 (0) | 2022.06.21 |
---|---|
Unity FPS : 총 스크립트 (0) | 2022.06.21 |
Unity FPS : PowerShot 및 Charging 애니메이션 구현 (0) | 2022.06.21 |
Unity FPS : 1인칭 시점 및 이동 (0) | 2022.05.24 |
UnityEngine:Cursor (0) | 2022.05.23 |