충돌, 레이캐스팅, 레이어, 카메라 기능 구현
This commit is contained in:
40
Assets/Scripts/Controllers/CameraController.cs
Normal file
40
Assets/Scripts/Controllers/CameraController.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class CameraController : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
Define.Cameramode _mode = Define.Cameramode.QuaterView;
|
||||
[SerializeField]
|
||||
Vector3 _delta = new Vector3(0.0f, 6.0f, -5.0f);
|
||||
[SerializeField]
|
||||
GameObject _player = null;
|
||||
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LateUpdate()
|
||||
{
|
||||
if (_mode == Define.Cameramode.QuaterView)
|
||||
{
|
||||
RaycastHit hit;
|
||||
if(Physics.Raycast(_player.transform.position, _delta, out hit, _delta.magnitude, LayerMask.GetMask("Wall")))
|
||||
{
|
||||
float dist = (hit.point - _player.transform.position).magnitude * 0.8f;
|
||||
transform.position = _player.transform.position + _delta.normalized * dist;
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.position = _player.transform.position + _delta;
|
||||
transform.LookAt(_player.transform);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void SetQuaterView(Vector3 delta)
|
||||
{
|
||||
_mode = Define.Cameramode.QuaterView;
|
||||
_delta = delta;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user