git : Merge branch 'Prototype' into feat/level/create-level-1
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
"initialStateCheck": true
|
||||
},
|
||||
{
|
||||
"name": "Pickup",
|
||||
"name": "HeadInteract",
|
||||
"type": "Button",
|
||||
"id": "5a0c555a-8fc4-4188-9eed-401eb8f017b5",
|
||||
"expectedControlType": "",
|
||||
@@ -100,7 +100,16 @@
|
||||
"name": "Sprint",
|
||||
"type": "Button",
|
||||
"id": "641cd816-40e6-41b4-8c3d-04687c349290",
|
||||
"expectedControlType": "Button",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "Shift",
|
||||
"type": "Button",
|
||||
"id": "082f2b53-d4e1-4cc7-b174-c2975cd57d3f",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
@@ -495,7 +504,7 @@
|
||||
{
|
||||
"name": "",
|
||||
"id": "05a519b8-f991-4f43-a438-fbe3db38625b",
|
||||
"path": "<Mouse>/rightButton",
|
||||
"path": "<Mouse>/leftButton",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": ";Keyboard&Mouse",
|
||||
@@ -510,7 +519,18 @@
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": ";Keyboard&Mouse",
|
||||
"action": "Pickup",
|
||||
"action": "HeadInteract",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "768d31fb-914a-42c1-900b-45ff3725e46c",
|
||||
"path": "<Keyboard>/shift",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": ";Touch;Keyboard&Mouse",
|
||||
"action": "Shift",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
}
|
||||
|
||||
110
Assets/Code/Scripts/Player/PlayerHeadControll.cs
Normal file
110
Assets/Code/Scripts/Player/PlayerHeadControll.cs
Normal file
@@ -0,0 +1,110 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerHeadController : MonoBehaviour
|
||||
{
|
||||
public Transform Head;
|
||||
public Transform CameraTransform;
|
||||
|
||||
public float ThrowForce = 10f;
|
||||
public float PickupDistance = 3f;
|
||||
|
||||
public bool isHoldingHead = true;
|
||||
|
||||
private Rigidbody m_headRigidbody;
|
||||
|
||||
private Vector3 m_headInitialLocalPos;
|
||||
private Quaternion m_headInitialLocalRot;
|
||||
|
||||
private Animator animator;
|
||||
private PlayerInputController input;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
animator = GetComponent<Animator>();
|
||||
input = GetComponent<PlayerInputController>();
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
|
||||
m_headInitialLocalPos = Head.localPosition;
|
||||
m_headInitialLocalRot = Head.localRotation;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (input.HeadInteractionPressed)
|
||||
{
|
||||
InteractHead();
|
||||
}
|
||||
|
||||
if (input.ThrowPressed)
|
||||
{
|
||||
ThrowHead();
|
||||
}
|
||||
}
|
||||
|
||||
private void InteractHead()
|
||||
{
|
||||
if (!isHoldingHead)
|
||||
TryPickupHead();
|
||||
else
|
||||
DropHead();
|
||||
}
|
||||
|
||||
private void DropHead()
|
||||
{
|
||||
animator.SetTrigger("Throw");
|
||||
|
||||
isHoldingHead = false;
|
||||
|
||||
Head.SetParent(null);
|
||||
|
||||
m_headRigidbody = Head.gameObject.AddComponent<Rigidbody>();
|
||||
m_headRigidbody.mass = 1f;
|
||||
|
||||
m_headRigidbody.constraints =
|
||||
RigidbodyConstraints.FreezeRotationX |
|
||||
RigidbodyConstraints.FreezeRotationZ |
|
||||
RigidbodyConstraints.FreezeRotationY;
|
||||
}
|
||||
|
||||
private void ThrowHead()
|
||||
{
|
||||
if (!isHoldingHead)
|
||||
return;
|
||||
|
||||
DropHead();
|
||||
|
||||
m_headRigidbody.AddForce(CameraTransform.forward * ThrowForce, ForceMode.Impulse);
|
||||
}
|
||||
|
||||
private void TryPickupHead()
|
||||
{
|
||||
if (isHoldingHead)
|
||||
return;
|
||||
|
||||
float distance = Vector3.Distance(transform.position, Head.position);
|
||||
|
||||
if (distance <= PickupDistance)
|
||||
{
|
||||
PickupHead();
|
||||
}
|
||||
}
|
||||
|
||||
private void PickupHead()
|
||||
{
|
||||
isHoldingHead = true;
|
||||
|
||||
if (m_headRigidbody != null)
|
||||
{
|
||||
Destroy(m_headRigidbody);
|
||||
}
|
||||
|
||||
Head.SetParent(transform);
|
||||
|
||||
Head.localPosition = m_headInitialLocalPos;
|
||||
Head.localRotation = m_headInitialLocalRot;
|
||||
}
|
||||
}
|
||||
2
Assets/Code/Scripts/Player/PlayerHeadControll.cs.meta
Normal file
2
Assets/Code/Scripts/Player/PlayerHeadControll.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2da51dfecccc45b469912e3bb3f1953b
|
||||
55
Assets/Code/Scripts/Player/PlayerInputHandler.cs
Normal file
55
Assets/Code/Scripts/Player/PlayerInputHandler.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
public class PlayerInputController : MonoBehaviour
|
||||
{
|
||||
public InputActionAsset InputActions;
|
||||
|
||||
private InputAction m_moveAction;
|
||||
private InputAction m_lookAction;
|
||||
private InputAction m_jumpAction;
|
||||
private InputAction m_throwAction;
|
||||
private InputAction m_shiftAction;
|
||||
private InputAction m_headInteractAction;
|
||||
|
||||
public Vector2 MoveAmount { get; private set; }
|
||||
public Vector2 LookAmount { get; private set; }
|
||||
|
||||
public bool JumpPressed { get; private set; }
|
||||
public bool ShiftPressed { get; private set; }
|
||||
public bool ThrowPressed { get; private set; }
|
||||
public bool HeadInteractionPressed { get; private set; }
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
var map = InputActions.FindActionMap("Player");
|
||||
|
||||
m_moveAction = map.FindAction("Move");
|
||||
m_lookAction = map.FindAction("Look");
|
||||
m_jumpAction = map.FindAction("Jump");
|
||||
m_shiftAction = map.FindAction("Shift");
|
||||
m_throwAction = map.FindAction("Throw");
|
||||
m_headInteractAction = map.FindAction("HeadInteract");
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
InputActions.FindActionMap("Player").Enable();
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
InputActions.FindActionMap("Player").Disable();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
MoveAmount = m_moveAction.ReadValue<Vector2>();
|
||||
LookAmount = m_lookAction.ReadValue<Vector2>();
|
||||
|
||||
ShiftPressed = m_shiftAction.IsPressed();
|
||||
JumpPressed = m_jumpAction.WasPressedThisFrame();
|
||||
ThrowPressed = m_throwAction.WasPressedThisFrame();
|
||||
HeadInteractionPressed = m_headInteractAction.WasPressedThisFrame();
|
||||
}
|
||||
}
|
||||
2
Assets/Code/Scripts/Player/PlayerInputHandler.cs.meta
Normal file
2
Assets/Code/Scripts/Player/PlayerInputHandler.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1d8f349ed7dc088a4a6e2690ee87094a
|
||||
34
Assets/Code/Scripts/Player/PlayerJump.cs
Normal file
34
Assets/Code/Scripts/Player/PlayerJump.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerJump : MonoBehaviour
|
||||
{
|
||||
public float JumpForce = 5;
|
||||
|
||||
public Transform GroundCheck;
|
||||
public float GroundCheckRadius = 0.2f;
|
||||
|
||||
private Rigidbody m_rigidbody;
|
||||
private PlayerInputController input;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
m_rigidbody = GetComponent<Rigidbody>();
|
||||
input = GetComponent<PlayerInputController>();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (input.JumpPressed)
|
||||
{
|
||||
Jump();
|
||||
}
|
||||
}
|
||||
|
||||
public void Jump()
|
||||
{
|
||||
if (Physics.CheckSphere(GroundCheck.position, GroundCheckRadius, LayerMask.GetMask("Ground")))
|
||||
{
|
||||
m_rigidbody.AddForce(Vector3.up * JumpForce, ForceMode.Impulse);
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Code/Scripts/Player/PlayerJump.cs.meta
Normal file
2
Assets/Code/Scripts/Player/PlayerJump.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9c524d12bc1668e42a00cbd8050107f6
|
||||
57
Assets/Code/Scripts/Player/PlayerLook.cs
Normal file
57
Assets/Code/Scripts/Player/PlayerLook.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerLook : MonoBehaviour
|
||||
{
|
||||
public Transform CameraTransform;
|
||||
public Transform Head;
|
||||
|
||||
public float RotateSpeed = 5;
|
||||
public float MaxLookAngle = 90f;
|
||||
|
||||
private float m_verticalRotation = 0f;
|
||||
|
||||
private Rigidbody m_rigidbody;
|
||||
private PlayerInputController input;
|
||||
private PlayerHeadController headController;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
m_rigidbody = GetComponent<Rigidbody>();
|
||||
input = GetComponent<PlayerInputController>();
|
||||
headController = GetComponent<PlayerHeadController>();
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
Vector2 m_lookAmt = input.LookAmount;
|
||||
|
||||
if (m_lookAmt.magnitude <= 0.01f)
|
||||
return;
|
||||
|
||||
if (!headController.isHoldingHead || input.ShiftPressed && headController.isHoldingHead)
|
||||
{
|
||||
float headRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
Head.Rotate(0, headRotation, 0);
|
||||
|
||||
if (CameraTransform != null)
|
||||
{
|
||||
m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
float horizontalRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
Quaternion deltaRotation = Quaternion.Euler(0, horizontalRotation, 0);
|
||||
m_rigidbody.MoveRotation(m_rigidbody.rotation * deltaRotation);
|
||||
|
||||
if (CameraTransform != null)
|
||||
{
|
||||
m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Code/Scripts/Player/PlayerLook.cs.meta
Normal file
2
Assets/Code/Scripts/Player/PlayerLook.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c1ddada0161b8c4783806ef6775348a
|
||||
@@ -1,216 +1,74 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
public class PlayerMovement : MonoBehaviour
|
||||
{
|
||||
public InputActionAsset InputActions;
|
||||
|
||||
private InputAction m_moveAction;
|
||||
private InputAction m_lookAction;
|
||||
private InputAction m_jumpAction;
|
||||
private InputAction m_throwAction;
|
||||
private InputAction m_pickupAction;
|
||||
|
||||
private Vector2 m_moveAmt;
|
||||
private Vector2 m_lookAmt;
|
||||
|
||||
private Rigidbody m_rigidbody;
|
||||
|
||||
[Header("Camera/Head")]
|
||||
public Transform CameraTransform;
|
||||
public float MaxLookAngle = 90f;
|
||||
|
||||
private float m_verticalRotation = 0f;
|
||||
|
||||
public float WalkSpeed = 10;
|
||||
public float RotateSpeed = 5;
|
||||
public float JumpForce = 5;
|
||||
|
||||
public Transform GroundCheck;
|
||||
public float GroundCheckRadius = 0.2f;
|
||||
public float rotationSpeed = 10f;
|
||||
|
||||
public Animator animator;
|
||||
public Transform cameraTransform;
|
||||
|
||||
[Header("Head Settings")]
|
||||
public Transform Head;
|
||||
public float ThrowForce = 10f;
|
||||
public float PickupDistance = 3f;
|
||||
private Rigidbody m_rigidbody;
|
||||
private PlayerInputController input;
|
||||
private PlayerHeadController headController;
|
||||
|
||||
private bool m_isHeadThrown = false;
|
||||
private Rigidbody m_headRigidbody;
|
||||
|
||||
private Vector3 m_headInitialLocalPos;
|
||||
private Quaternion m_headInitialLocalRot;
|
||||
private Vector3 moveDirection;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
var map = InputActions.FindActionMap("Player");
|
||||
|
||||
m_moveAction = map.FindAction("Move");
|
||||
m_lookAction = map.FindAction("Look");
|
||||
m_jumpAction = map.FindAction("Jump");
|
||||
// Support both old and new action names without breaking the scene setup.
|
||||
m_throwAction = map.FindAction("Throw") ?? map.FindAction("Attack");
|
||||
m_pickupAction = map.FindAction("Pickup") ?? map.FindAction("Interact");
|
||||
|
||||
m_rigidbody = GetComponent<Rigidbody>();
|
||||
input = GetComponent<PlayerInputController>();
|
||||
animator = GetComponent<Animator>();
|
||||
}
|
||||
headController = GetComponent<PlayerHeadController>();
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
InputActions.FindActionMap("Player").Enable();
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
InputActions.FindActionMap("Player").Disable();
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
m_headInitialLocalPos = Head.localPosition;
|
||||
m_headInitialLocalRot = Head.localRotation;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
m_moveAmt = m_moveAction != null ? m_moveAction.ReadValue<Vector2>() : Vector2.zero;
|
||||
m_lookAmt = m_lookAction != null ? m_lookAction.ReadValue<Vector2>() : Vector2.zero;
|
||||
|
||||
if (m_jumpAction != null && m_jumpAction.WasPressedThisFrame())
|
||||
if (m_rigidbody != null)
|
||||
{
|
||||
Jump();
|
||||
m_rigidbody.freezeRotation = true;
|
||||
}
|
||||
|
||||
if (m_throwAction != null && m_throwAction.WasPressedThisFrame())
|
||||
{
|
||||
ThrowHead();
|
||||
}
|
||||
|
||||
if (m_pickupAction != null && (m_pickupAction.WasPressedThisFrame() || m_pickupAction.WasPerformedThisFrame()))
|
||||
{
|
||||
TryPickupHead();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
Walking();
|
||||
Rotating();
|
||||
}
|
||||
Vector2 m_moveAmt = input.MoveAmount;
|
||||
|
||||
private void Walking()
|
||||
{
|
||||
Vector3 move =
|
||||
transform.forward * m_moveAmt.y +
|
||||
transform.right * m_moveAmt.x;
|
||||
float horizontal = m_moveAmt.x;
|
||||
float vertical = m_moveAmt.y;
|
||||
|
||||
m_rigidbody.MovePosition(
|
||||
m_rigidbody.position + move * WalkSpeed * Time.deltaTime
|
||||
);
|
||||
Vector3 cameraForward = cameraTransform.forward;
|
||||
Vector3 cameraRight = cameraTransform.right;
|
||||
|
||||
cameraForward.y = 0f;
|
||||
cameraRight.y = 0f;
|
||||
|
||||
cameraForward.Normalize();
|
||||
cameraRight.Normalize();
|
||||
|
||||
moveDirection = (cameraForward * vertical + cameraRight * horizontal).normalized;
|
||||
|
||||
if (headController.isHoldingHead)
|
||||
{
|
||||
m_rigidbody.MovePosition(
|
||||
m_rigidbody.position + Time.deltaTime * WalkSpeed * moveDirection
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (moveDirection.magnitude >= 0.1f)
|
||||
{
|
||||
m_rigidbody.MovePosition(
|
||||
m_rigidbody.position + Time.deltaTime * WalkSpeed * moveDirection
|
||||
);
|
||||
|
||||
Quaternion targetRotation = Quaternion.LookRotation(moveDirection);
|
||||
transform.rotation = Quaternion.Slerp(
|
||||
transform.rotation,
|
||||
targetRotation,
|
||||
rotationSpeed * Time.deltaTime
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
bool isMoving = m_moveAmt.magnitude > 0.1f;
|
||||
animator.SetBool("isWalking", isMoving);
|
||||
}
|
||||
|
||||
|
||||
private void Rotating()
|
||||
{
|
||||
if (m_lookAmt.magnitude <= 0.01f)
|
||||
return;
|
||||
|
||||
if (!m_isHeadThrown)
|
||||
{
|
||||
// NORMAL BODY ROTATION
|
||||
float horizontalRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
Quaternion deltaRotation = Quaternion.Euler(0, horizontalRotation, 0);
|
||||
m_rigidbody.MoveRotation(m_rigidbody.rotation * deltaRotation);
|
||||
|
||||
if (CameraTransform != null)
|
||||
{
|
||||
m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// HEAD ROTATION ON GROUND
|
||||
float headRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
Head.Rotate(0, headRotation, 0);
|
||||
|
||||
// Add vertical camera rotation when head is on ground
|
||||
if (CameraTransform != null)
|
||||
{
|
||||
m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Jump()
|
||||
{
|
||||
if (Physics.CheckSphere(GroundCheck.position, GroundCheckRadius, LayerMask.GetMask("Ground"))) {
|
||||
m_rigidbody.AddForce(Vector3.up * JumpForce, ForceMode.Impulse);
|
||||
}
|
||||
}
|
||||
|
||||
private void ThrowHead()
|
||||
{
|
||||
if (m_isHeadThrown)
|
||||
return;
|
||||
|
||||
animator.SetTrigger("Throw");
|
||||
|
||||
m_isHeadThrown = true;
|
||||
|
||||
Head.SetParent(null);
|
||||
|
||||
m_headRigidbody = Head.gameObject.AddComponent<Rigidbody>();
|
||||
m_headRigidbody.mass = 1f;
|
||||
|
||||
m_headRigidbody.constraints =
|
||||
RigidbodyConstraints.FreezeRotationX |
|
||||
RigidbodyConstraints.FreezeRotationZ;
|
||||
|
||||
m_headRigidbody.AddForce(CameraTransform.forward * ThrowForce, ForceMode.Impulse);
|
||||
}
|
||||
|
||||
private void TryPickupHead()
|
||||
{
|
||||
if (!m_isHeadThrown)
|
||||
return;
|
||||
|
||||
float distance = Vector3.Distance(transform.position, Head.position);
|
||||
|
||||
if (distance <= PickupDistance)
|
||||
{
|
||||
PickupHead();
|
||||
}
|
||||
}
|
||||
|
||||
private void PickupHead()
|
||||
{
|
||||
m_isHeadThrown = false;
|
||||
|
||||
// Remove Rigidbody
|
||||
if (m_headRigidbody != null)
|
||||
{
|
||||
Destroy(m_headRigidbody);
|
||||
}
|
||||
|
||||
// Reattach to player
|
||||
Head.SetParent(transform);
|
||||
|
||||
// Reset position & rotation
|
||||
Head.localPosition = m_headInitialLocalPos;
|
||||
Head.localRotation = m_headInitialLocalRot;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,2 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1d8f349ed7dc088a4a6e2690ee87094a
|
||||
guid: 7f91586e8c2742341aa8f6925e597bf1
|
||||
216
Assets/Code/Scripts/Player/test.cs
Normal file
216
Assets/Code/Scripts/Player/test.cs
Normal file
@@ -0,0 +1,216 @@
|
||||
//using TMPro;
|
||||
//using UnityEngine;
|
||||
//using UnityEngine.InputSystem;
|
||||
|
||||
//public class PlayerMovement : MonoBehaviour
|
||||
//{
|
||||
// public InputActionAsset InputActions;
|
||||
|
||||
// private InputAction m_moveAction;
|
||||
// private InputAction m_lookAction;
|
||||
// private InputAction m_jumpAction;
|
||||
// private InputAction m_throwAction;
|
||||
// private InputAction m_pickupAction;
|
||||
|
||||
// private Vector2 m_moveAmt;
|
||||
// private Vector2 m_lookAmt;
|
||||
|
||||
// private Rigidbody m_rigidbody;
|
||||
|
||||
// [Header("Camera/Head")]
|
||||
// public Transform CameraTransform;
|
||||
// public float MaxLookAngle = 90f;
|
||||
|
||||
// private float m_verticalRotation = 0f;
|
||||
|
||||
// public float WalkSpeed = 10;
|
||||
// public float RotateSpeed = 5;
|
||||
// public float JumpForce = 5;
|
||||
|
||||
// public Transform GroundCheck;
|
||||
// public float GroundCheckRadius = 0.2f;
|
||||
|
||||
// public Animator animator;
|
||||
|
||||
// [Header("Head Settings")]
|
||||
// public Transform Head;
|
||||
// public float ThrowForce = 10f;
|
||||
// public float PickupDistance = 3f;
|
||||
|
||||
// private bool m_isHeadThrown = false;
|
||||
// private Rigidbody m_headRigidbody;
|
||||
|
||||
// private Vector3 m_headInitialLocalPos;
|
||||
// private Quaternion m_headInitialLocalRot;
|
||||
|
||||
// private void Awake()
|
||||
// {
|
||||
// var map = InputActions.FindActionMap("Player");
|
||||
|
||||
// m_moveAction = map.FindAction("Move");
|
||||
// m_lookAction = map.FindAction("Look");
|
||||
// m_jumpAction = map.FindAction("Jump");
|
||||
// m_throwAction = map.FindAction("Throw");
|
||||
// m_pickupAction = map.FindAction("Pickup");
|
||||
|
||||
// m_rigidbody = GetComponent<Rigidbody>();
|
||||
// animator = GetComponent<Animator>();
|
||||
// }
|
||||
|
||||
// private void OnEnable()
|
||||
// {
|
||||
// InputActions.FindActionMap("Player").Enable();
|
||||
// }
|
||||
|
||||
// private void OnDisable()
|
||||
// {
|
||||
// InputActions.FindActionMap("Player").Disable();
|
||||
// }
|
||||
|
||||
// void Start()
|
||||
// {
|
||||
// Cursor.lockState = CursorLockMode.Locked;
|
||||
// m_headInitialLocalPos = Head.localPosition;
|
||||
// m_headInitialLocalRot = Head.localRotation;
|
||||
// }
|
||||
|
||||
// private void Update()
|
||||
// {
|
||||
// m_moveAmt = m_moveAction.ReadValue<Vector2>();
|
||||
// m_lookAmt = m_lookAction.ReadValue<Vector2>();
|
||||
|
||||
// if (m_jumpAction.WasPressedThisFrame())
|
||||
// {
|
||||
// Jump();
|
||||
// }
|
||||
|
||||
// if (m_throwAction.WasPressedThisFrame())
|
||||
// {
|
||||
// ThrowHead();
|
||||
// }
|
||||
|
||||
// if (m_pickupAction.WasPressedThisFrame())
|
||||
// {
|
||||
// TryPickupHead();
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
// private void FixedUpdate()
|
||||
// {
|
||||
// Walking();
|
||||
// Rotating();
|
||||
// }
|
||||
|
||||
// private void Walking()
|
||||
// {
|
||||
// Vector3 move =
|
||||
// transform.forward * m_moveAmt.y +
|
||||
// transform.right * m_moveAmt.x;
|
||||
|
||||
// m_rigidbody.MovePosition(
|
||||
// m_rigidbody.position + move * WalkSpeed * Time.deltaTime
|
||||
// );
|
||||
|
||||
// bool isMoving = m_moveAmt.magnitude > 0.1f;
|
||||
// animator.SetBool("isWalking", isMoving);
|
||||
// }
|
||||
|
||||
|
||||
// private void Rotating()
|
||||
// {
|
||||
// if (m_lookAmt.magnitude <= 0.01f)
|
||||
// return;
|
||||
|
||||
// if (!m_isHeadThrown)
|
||||
// {
|
||||
// NORMAL BODY ROTATION
|
||||
// float horizontalRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
// Quaternion deltaRotation = Quaternion.Euler(0, horizontalRotation, 0);
|
||||
// m_rigidbody.MoveRotation(m_rigidbody.rotation * deltaRotation);
|
||||
|
||||
// if (CameraTransform != null)
|
||||
// {
|
||||
// m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
// m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
// CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// HEAD ROTATION ON GROUND
|
||||
// float headRotation = m_lookAmt.x * RotateSpeed * Time.deltaTime;
|
||||
// Head.Rotate(0, headRotation, 0);
|
||||
|
||||
// Add vertical camera rotation when head is on ground
|
||||
// if (CameraTransform != null)
|
||||
// {
|
||||
// m_verticalRotation -= m_lookAmt.y * RotateSpeed * Time.deltaTime;
|
||||
// m_verticalRotation = Mathf.Clamp(m_verticalRotation, -MaxLookAngle, MaxLookAngle);
|
||||
// CameraTransform.localRotation = Quaternion.Euler(m_verticalRotation, 0, 0);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// public void Jump()
|
||||
// {
|
||||
// if (Physics.CheckSphere(GroundCheck.position, GroundCheckRadius, LayerMask.GetMask("Ground")))
|
||||
// {
|
||||
// m_rigidbody.AddForce(Vector3.up * JumpForce, ForceMode.Impulse);
|
||||
// }
|
||||
// }
|
||||
|
||||
// private void ThrowHead()
|
||||
// {
|
||||
// if (m_isHeadThrown)
|
||||
// return;
|
||||
|
||||
// animator.SetTrigger("Throw");
|
||||
|
||||
// m_isHeadThrown = true;
|
||||
|
||||
// Head.SetParent(null);
|
||||
|
||||
// m_headRigidbody = Head.gameObject.AddComponent<Rigidbody>();
|
||||
// m_headRigidbody.mass = 1f;
|
||||
|
||||
// m_headRigidbody.constraints =
|
||||
// RigidbodyConstraints.FreezeRotationX |
|
||||
// RigidbodyConstraints.FreezeRotationZ;
|
||||
|
||||
// m_headRigidbody.AddForce(CameraTransform.forward * ThrowForce, ForceMode.Impulse);
|
||||
// }
|
||||
|
||||
// private void TryPickupHead()
|
||||
// {
|
||||
// if (!m_isHeadThrown)
|
||||
// return;
|
||||
|
||||
// float distance = Vector3.Distance(transform.position, Head.position);
|
||||
|
||||
// if (distance <= PickupDistance)
|
||||
// {
|
||||
// PickupHead();
|
||||
// }
|
||||
// }
|
||||
|
||||
// private void PickupHead()
|
||||
// {
|
||||
// m_isHeadThrown = false;
|
||||
|
||||
// Remove Rigidbody
|
||||
// if (m_headRigidbody != null)
|
||||
// {
|
||||
// Destroy(m_headRigidbody);
|
||||
// }
|
||||
|
||||
// Reattach to player
|
||||
// Head.SetParent(transform);
|
||||
|
||||
// Reset position & rotation
|
||||
// Head.localPosition = m_headInitialLocalPos;
|
||||
// Head.localRotation = m_headInitialLocalRot;
|
||||
// }
|
||||
|
||||
|
||||
//}
|
||||
2
Assets/Code/Scripts/Player/test.cs.meta
Normal file
2
Assets/Code/Scripts/Player/test.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 85fce5e45a2682243a133de9ba0a4324
|
||||
Reference in New Issue
Block a user