diff --git a/Assets/Scenes/Testing Scenes/YeetScene.unity b/Assets/Scenes/Testing Scenes/YeetScene.unity new file mode 100644 index 0000000..b32599c --- /dev/null +++ b/Assets/Scenes/Testing Scenes/YeetScene.unity @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ea0b2fa22aec2ac87b06a6e8946fa0b75085557c442eac61ead4c354385ca94 +size 24778 diff --git a/Assets/Scenes/Testing Scenes/YeetScene.unity.meta b/Assets/Scenes/Testing Scenes/YeetScene.unity.meta new file mode 100644 index 0000000..015fc57 --- /dev/null +++ b/Assets/Scenes/Testing Scenes/YeetScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7d479bacc53922e4498008816aade241 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Behaviours.meta b/Assets/Scripts/Behaviours.meta new file mode 100644 index 0000000..ce3c2d4 --- /dev/null +++ b/Assets/Scripts/Behaviours.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 408c7b3fd4c3afc4c9187c4ad234f2f2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Behaviours/IYeetable.cs b/Assets/Scripts/Behaviours/IYeetable.cs new file mode 100644 index 0000000..106cf80 --- /dev/null +++ b/Assets/Scripts/Behaviours/IYeetable.cs @@ -0,0 +1,9 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public interface IYeetable +{ + void Hold(GameObject child); + void Yeet(); +} diff --git a/Assets/Scripts/Behaviours/IYeetable.cs.meta b/Assets/Scripts/Behaviours/IYeetable.cs.meta new file mode 100644 index 0000000..284f831 --- /dev/null +++ b/Assets/Scripts/Behaviours/IYeetable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2bbcd198578c95d40a2dd8f089364686 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Behaviours/YeetController.cs b/Assets/Scripts/Behaviours/YeetController.cs new file mode 100644 index 0000000..9fe777d --- /dev/null +++ b/Assets/Scripts/Behaviours/YeetController.cs @@ -0,0 +1,61 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class YeetController : MonoBehaviour, IYeetable +{ + public GameObject parent { get; set; } + + public float yeetVelocity = 10f; + public float yeetDuration = 2f; + + private float time; + public enum YeetState { Unheld, Held, Yeeting }; + public YeetState yeetState { get; private set; } = YeetState.Unheld; + + private GameObject _child; + + public void Hold(GameObject child) + { + _child = child; + _child.transform.parent = parent.transform; + + yeetState = YeetState.Held; + } + + public void Yeet() + { + _child.transform.parent = null; + + yeetState = YeetState.Yeeting; + time = yeetDuration; + } + + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + switch(yeetState) + { + case YeetState.Yeeting: + _child.transform.position += _child.transform.forward * yeetVelocity * Time.deltaTime; + time -= Time.deltaTime; + + if(time <= 0f) + { + yeetState = YeetState.Unheld; + } + break; + case YeetState.Held: + break; + case YeetState.Unheld: + _child = null; + break; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Behaviours/YeetController.cs.meta b/Assets/Scripts/Behaviours/YeetController.cs.meta new file mode 100644 index 0000000..99845bf --- /dev/null +++ b/Assets/Scripts/Behaviours/YeetController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 188bb300967eea14fb681a94fc31f911 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Player.meta b/Assets/Scripts/Player.meta new file mode 100644 index 0000000..7059f87 --- /dev/null +++ b/Assets/Scripts/Player.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0899cb5e9885fc441bc2cfd3746b0ed9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Player/ControllerBase.cs b/Assets/Scripts/Player/ControllerBase.cs new file mode 100644 index 0000000..84b2865 --- /dev/null +++ b/Assets/Scripts/Player/ControllerBase.cs @@ -0,0 +1,65 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ControllerBase : MonoBehaviour +{ + public CharacterController characterController; + public float speed = 6f; + public float sensitivity = 10f; + public GameObject body; + public GameObject testChild; + + public YeetController yeetController; + + void Start() + { + + } + + // Update is called once per frame + void Update() + { + Move(); + //Rotate(); + + if(Input.GetButtonDown("Fire1")) + { + yeetController.parent = body; + switch(yeetController.yeetState) + { + case YeetController.YeetState.Unheld: + yeetController.Hold(testChild); + // Grab nearest baby + break; + case YeetController.YeetState.Held: + yeetController.Yeet(); + // Yeet baby + break; + case YeetController.YeetState.Yeeting: + // Cooldown? + break; + } + + } + + } + + void Move() + { + float horizontal = Input.GetAxis("Horizontal"); + float vertical = Input.GetAxis("Vertical"); + + Vector3 move = transform.forward * vertical + transform.right * horizontal; + characterController.Move(speed * Time.deltaTime * move); + } + + void Rotate() + { + float horizontal = Input.GetAxis("Mouse Y"); + + body.transform.Rotate(0, horizontal * sensitivity, 0); + } + + +} diff --git a/Assets/Scripts/Player/ControllerBase.cs.meta b/Assets/Scripts/Player/ControllerBase.cs.meta new file mode 100644 index 0000000..0dd2592 --- /dev/null +++ b/Assets/Scripts/Player/ControllerBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5f1380fc8f7b79446aa26ea089b4362a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/InputManager.asset b/ProjectSettings/InputManager.asset index 1d06bcb..1a96a75 100644 --- a/ProjectSettings/InputManager.asset +++ b/ProjectSettings/InputManager.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:776c8b6c71e1101973e1f3ab569cf9058b857372a8a19210b50b3c1c6a1a42a6 -size 10218 +oid sha256:a5dce8dac1e4beac1b902d7d1db11b3e4785a6f1a97d9fe2d4d0885289b163e4 +size 9731 diff --git a/ProjectSettings/TimelineSettings.asset b/ProjectSettings/TimelineSettings.asset new file mode 100644 index 0000000..c6c19d5 --- /dev/null +++ b/ProjectSettings/TimelineSettings.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4333bb60f63529ab4ad88b65fe5dfaf7af05a7b4f2b9d64ad4e970ad17cc1514 +size 411