feat: drop head
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
"initialStateCheck": true
|
||||
},
|
||||
{
|
||||
"name": "Pickup",
|
||||
"name": "HeadInteract",
|
||||
"type": "Button",
|
||||
"id": "5a0c555a-8fc4-4188-9eed-401eb8f017b5",
|
||||
"expectedControlType": "",
|
||||
@@ -519,7 +519,7 @@
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": ";Keyboard&Mouse",
|
||||
"action": "Pickup",
|
||||
"action": "HeadInteract",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerHeadController : MonoBehaviour
|
||||
@@ -34,22 +35,27 @@ public class PlayerHeadController : MonoBehaviour
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (input.HeadInteractionPressed)
|
||||
{
|
||||
InteractHead();
|
||||
}
|
||||
|
||||
if (input.ThrowPressed)
|
||||
{
|
||||
ThrowHead();
|
||||
}
|
||||
|
||||
if (input.PickupPressed)
|
||||
{
|
||||
TryPickupHead();
|
||||
}
|
||||
}
|
||||
|
||||
private void ThrowHead()
|
||||
private void InteractHead()
|
||||
{
|
||||
if (!isHoldingHead)
|
||||
return;
|
||||
TryPickupHead();
|
||||
else
|
||||
DropHead();
|
||||
}
|
||||
|
||||
private void DropHead()
|
||||
{
|
||||
animator.SetTrigger("Throw");
|
||||
|
||||
isHoldingHead = false;
|
||||
@@ -63,6 +69,14 @@ public class PlayerHeadController : MonoBehaviour
|
||||
RigidbodyConstraints.FreezeRotationX |
|
||||
RigidbodyConstraints.FreezeRotationZ |
|
||||
RigidbodyConstraints.FreezeRotationY;
|
||||
}
|
||||
|
||||
private void ThrowHead()
|
||||
{
|
||||
if (!isHoldingHead)
|
||||
return;
|
||||
|
||||
DropHead();
|
||||
|
||||
m_headRigidbody.AddForce(CameraTransform.forward * ThrowForce, ForceMode.Impulse);
|
||||
}
|
||||
@@ -94,4 +108,4 @@ public class PlayerHeadController : MonoBehaviour
|
||||
Head.localPosition = m_headInitialLocalPos;
|
||||
Head.localRotation = m_headInitialLocalRot;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,36 +1,35 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.Windows;
|
||||
|
||||
public class PlayerInputController : MonoBehaviour
|
||||
{
|
||||
public InputActionAsset InputActions;
|
||||
|
||||
private InputAction m_headInteractAction;
|
||||
private InputAction m_moveAction;
|
||||
private InputAction m_lookAction;
|
||||
private InputAction m_jumpAction;
|
||||
private InputAction m_throwAction;
|
||||
private InputAction m_pickupAction;
|
||||
private InputAction m_shiftAction;
|
||||
|
||||
public Vector2 MoveAmount { get; private set; }
|
||||
public Vector2 LookAmount { get; private set; }
|
||||
|
||||
public bool HeadInteractionPressed { get; private set; }
|
||||
public bool JumpPressed { get; private set; }
|
||||
public bool ShiftPressed { get; private set; }
|
||||
public bool ThrowPressed { get; private set; }
|
||||
public bool PickupPressed { get; private set; }
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
var map = InputActions.FindActionMap("Player");
|
||||
|
||||
m_headInteractAction = map.FindAction("HeadInteract");
|
||||
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_pickupAction = map.FindAction("Pickup");
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
@@ -51,6 +50,6 @@ public class PlayerInputController : MonoBehaviour
|
||||
ShiftPressed = m_shiftAction.IsPressed();
|
||||
JumpPressed = m_jumpAction.WasPressedThisFrame();
|
||||
ThrowPressed = m_throwAction.WasPressedThisFrame();
|
||||
PickupPressed = m_pickupAction.WasPressedThisFrame();
|
||||
HeadInteractionPressed = m_headInteractAction.WasPressedThisFrame();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user