Commit abe8e81c authored by 15박보승's avatar 15박보승

플레이어 컨트롤로 초안 완성/카메라 시점 개선

parent cf048ec3
This diff is collapsed.
...@@ -25,14 +25,14 @@ public class CameraController : MonoBehaviour ...@@ -25,14 +25,14 @@ public class CameraController : MonoBehaviour
private void Update() private void Update()
{ {
currentX += Input.GetAxis("Mouse X"); currentX += Input.GetAxis("Mouse X");
currentY = Mathf.Clamp(currentY - Input.GetAxis("Mouse Y"), -60, 60); currentY = Mathf.Clamp(currentY - Input.GetAxis("Mouse Y"), -89, 89);
} }
private void LateUpdate() private void LateUpdate()
{ {
Vector3 dir = new Vector3(0, 0, -distance); Vector3 dir = new Vector3(0, 0, -distance);
Quaternion rotation = Quaternion.Euler(currentY, currentX, 0); Quaternion rotation = Quaternion.Euler(currentY, currentX, 0);
transform.position = offset + target.position + rotation * dir; transform.position = /*offset +*/ target.position + rotation * dir;
target.rotation = Quaternion.Euler(0, currentX, 0); target.rotation = Quaternion.Euler(0, currentX, 0);
transform.LookAt(target.position + offset); transform.LookAt(target.position + offset);
} }
......
...@@ -24,8 +24,9 @@ public class DistanceJoint3D : MonoBehaviour ...@@ -24,8 +24,9 @@ public class DistanceJoint3D : MonoBehaviour
{ {
if (distance > 0) if (distance > 0)
{ {
distance = Mathf.Max(0, distance - 50 * Time.deltaTime); distance = Mathf.Max(0, distance - 100 * Time.deltaTime);
} //distance = Mathf.Lerp(distance, 0, 0.8f);
}
} }
private void FixedUpdate() private void FixedUpdate()
{ {
......
...@@ -12,7 +12,12 @@ public class HookBehaviour : MonoBehaviour ...@@ -12,7 +12,12 @@ public class HookBehaviour : MonoBehaviour
[SerializeField] [SerializeField]
private Rigidbody rb; private Rigidbody rb;
private void Awake() private void OnDrawGizmos()
{
}
private void Awake()
{ {
rb = GetComponent<Rigidbody>(); rb = GetComponent<Rigidbody>();
gameObject.SetActive(false); gameObject.SetActive(false);
...@@ -26,7 +31,6 @@ public class HookBehaviour : MonoBehaviour ...@@ -26,7 +31,6 @@ public class HookBehaviour : MonoBehaviour
private void OnCollisionEnter(Collision collision) private void OnCollisionEnter(Collision collision)
{ {
Debug.Log(collision.gameObject);
rb.velocity = Vector3.zero; rb.velocity = Vector3.zero;
rb.isKinematic = true; rb.isKinematic = true;
player.GetComponent<PlayerController>().ActiveWire(); player.GetComponent<PlayerController>().ActiveWire();
......
...@@ -6,7 +6,7 @@ using UnityEngine; ...@@ -6,7 +6,7 @@ using UnityEngine;
public class PlayerController : MonoBehaviour public class PlayerController : MonoBehaviour
{ {
public float distance = 10.0f; public float distance = 10.0f;
//private CharacterController cc;
float velocityY = 0.0f; float velocityY = 0.0f;
const float gravity = 9.8f; const float gravity = 9.8f;
...@@ -14,22 +14,44 @@ public class PlayerController : MonoBehaviour ...@@ -14,22 +14,44 @@ public class PlayerController : MonoBehaviour
public HookBehaviour hook; public HookBehaviour hook;
private Rigidbody rb; private Rigidbody rb;
private DistanceJoint3D joint; private CapsuleCollider col;
private DistanceJoint3D joint;
private bool isWired; private bool isWired;
[SerializeField]
private Transform groundChecker;
[SerializeField]
private LayerMask groundMask;
private bool IsGrounded
{
get {
return Physics.OverlapSphere(groundChecker.position, 0.01f, groundMask).Length > 0;
}
}
#if UNITY_EDITOR #if UNITY_EDITOR
private void OnDrawGizmos() private void OnDrawGizmos()
{ {
Gizmos.DrawLine(transform.position, (transform.position - Camera.main.transform.position) * 10); Gizmos.color = Color.red;
} Gizmos.DrawLine(transform.position, Camera.main.transform.forward.normalized * 200);
if (!IsGrounded)
Gizmos.color = Color.green;
Gizmos.DrawSphere(groundChecker.position, 0.1f);
}
#endif #endif
private void Start() private void Start()
{ {
//cc = GetComponent<CharacterController>();
Cursor.lockState = CursorLockMode.Locked; Cursor.lockState = CursorLockMode.Locked;
joint = GetComponent<DistanceJoint3D>(); joint = GetComponent<DistanceJoint3D>();
rb = GetComponent<Rigidbody>(); rb = GetComponent<Rigidbody>();
col = GetComponent<CapsuleCollider>();
//col.enabled = !IsGrounded;
//cc.enabled = IsGrounded;
} }
private void Update() private void Update()
{ {
...@@ -45,22 +67,18 @@ public class PlayerController : MonoBehaviour ...@@ -45,22 +67,18 @@ public class PlayerController : MonoBehaviour
else else
ReturnHook(); ReturnHook();
} }
if (!isWired) if (IsGrounded)
{ {
/* rb.velocity = (horizontal * transform.right + vertical * transform.forward).normalized * 10.0f;
if (Input.GetButtonDown("Jump") && cc.isGrounded) if (Input.GetButtonDown("Jump"))
velocityY = 5.0f; rb.velocity += new Vector3(0, 5 -rb.velocity.y, 0);
if (!cc.isGrounded) }
velocityY -= gravity * Time.deltaTime;
cc.Move(horizontal * transform.right + vertical * transform.forward + new Vector3(0, velocityY, 0) * Time.deltaTime);
*/
}
else else
{ {
rb.AddForce(horizontal * transform.right + vertical * transform.forward * 10.0f);
} }
} }
private void LateUpdate() private void LateUpdate()
{ {
...@@ -72,7 +90,7 @@ public class PlayerController : MonoBehaviour ...@@ -72,7 +90,7 @@ public class PlayerController : MonoBehaviour
joint.enabled = false; joint.enabled = false;
hook.gameObject.SetActive(true); hook.gameObject.SetActive(true);
hook.transform.position = transform.position; hook.transform.position = transform.position;
hook.EnableHook((transform.position - Camera.main.transform.position).normalized * 200); hook.EnableHook(Camera.main.transform.forward.normalized * 200);
} }
private void ReturnHook() private void ReturnHook()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment