added player and danger platfroms

This commit is contained in:
Mausham
2025-12-11 12:20:01 -08:00
parent 1014b82c22
commit 60e58082ac
42 changed files with 1070 additions and 2058 deletions

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0dc1d6ab2941b194184f854b7f1a3c75
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,323 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
// version 1.16.0
// from Assets/Scripts/GameInput/GameInput.inputactions
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Utilities;
/// <summary>
/// Provides programmatic access to <see cref="InputActionAsset" />, <see cref="InputActionMap" />, <see cref="InputAction" /> and <see cref="InputControlScheme" /> instances defined in asset "Assets/Scripts/GameInput/GameInput.inputactions".
/// </summary>
/// <remarks>
/// This class is source generated and any manual edits will be discarded if the associated asset is reimported or modified.
/// </remarks>
/// <example>
/// <code>
/// using namespace UnityEngine;
/// using UnityEngine.InputSystem;
///
/// // Example of using an InputActionMap named "Player" from a UnityEngine.MonoBehaviour implementing callback interface.
/// public class Example : MonoBehaviour, MyActions.IPlayerActions
/// {
/// private MyActions_Actions m_Actions; // Source code representation of asset.
/// private MyActions_Actions.PlayerActions m_Player; // Source code representation of action map.
///
/// void Awake()
/// {
/// m_Actions = new MyActions_Actions(); // Create asset object.
/// m_Player = m_Actions.Player; // Extract action map object.
/// m_Player.AddCallbacks(this); // Register callback interface IPlayerActions.
/// }
///
/// void OnDestroy()
/// {
/// m_Actions.Dispose(); // Destroy asset object.
/// }
///
/// void OnEnable()
/// {
/// m_Player.Enable(); // Enable all actions within map.
/// }
///
/// void OnDisable()
/// {
/// m_Player.Disable(); // Disable all actions within map.
/// }
///
/// #region Interface implementation of MyActions.IPlayerActions
///
/// // Invoked when "Move" action is either started, performed or canceled.
/// public void OnMove(InputAction.CallbackContext context)
/// {
/// Debug.Log($"OnMove: {context.ReadValue&lt;Vector2&gt;()}");
/// }
///
/// // Invoked when "Attack" action is either started, performed or canceled.
/// public void OnAttack(InputAction.CallbackContext context)
/// {
/// Debug.Log($"OnAttack: {context.ReadValue&lt;float&gt;()}");
/// }
///
/// #endregion
/// }
/// </code>
/// </example>
public partial class @GameInput: IInputActionCollection2, IDisposable
{
/// <summary>
/// Provides access to the underlying asset instance.
/// </summary>
public InputActionAsset asset { get; }
/// <summary>
/// Constructs a new instance.
/// </summary>
public @GameInput()
{
asset = InputActionAsset.FromJson(@"{
""version"": 1,
""name"": ""GameInput"",
""maps"": [
{
""name"": ""Player"",
""id"": ""843e6a41-5f3f-41a7-babf-23aad7346cc5"",
""actions"": [
{
""name"": ""Drag"",
""type"": ""PassThrough"",
""id"": ""838180ae-e461-4653-a2e3-17ffb634a89d"",
""expectedControlType"": ""Vector2"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": true
}
],
""bindings"": [
{
""name"": """",
""id"": ""131b8ff7-9803-469f-bd97-edc6236ff88a"",
""path"": ""<Touchscreen>/touch0/delta"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Drag"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""50de849f-4620-498a-b592-9dc32d7036c4"",
""path"": ""<Mouse>/delta"",
""interactions"": ""Press"",
""processors"": """",
""groups"": """",
""action"": ""Drag"",
""isComposite"": false,
""isPartOfComposite"": false
}
]
}
],
""controlSchemes"": []
}");
// Player
m_Player = asset.FindActionMap("Player", throwIfNotFound: true);
m_Player_Drag = m_Player.FindAction("Drag", throwIfNotFound: true);
}
~@GameInput()
{
UnityEngine.Debug.Assert(!m_Player.enabled, "This will cause a leak and performance issues, GameInput.Player.Disable() has not been called.");
}
/// <summary>
/// Destroys this asset and all associated <see cref="InputAction"/> instances.
/// </summary>
public void Dispose()
{
UnityEngine.Object.Destroy(asset);
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.bindingMask" />
public InputBinding? bindingMask
{
get => asset.bindingMask;
set => asset.bindingMask = value;
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.devices" />
public ReadOnlyArray<InputDevice>? devices
{
get => asset.devices;
set => asset.devices = value;
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.controlSchemes" />
public ReadOnlyArray<InputControlScheme> controlSchemes => asset.controlSchemes;
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Contains(InputAction)" />
public bool Contains(InputAction action)
{
return asset.Contains(action);
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.GetEnumerator()" />
public IEnumerator<InputAction> GetEnumerator()
{
return asset.GetEnumerator();
}
/// <inheritdoc cref="IEnumerable.GetEnumerator()" />
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Enable()" />
public void Enable()
{
asset.Enable();
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Disable()" />
public void Disable()
{
asset.Disable();
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.bindings" />
public IEnumerable<InputBinding> bindings => asset.bindings;
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.FindAction(string, bool)" />
public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false)
{
return asset.FindAction(actionNameOrId, throwIfNotFound);
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.FindBinding(InputBinding, out InputAction)" />
public int FindBinding(InputBinding bindingMask, out InputAction action)
{
return asset.FindBinding(bindingMask, out action);
}
// Player
private readonly InputActionMap m_Player;
private List<IPlayerActions> m_PlayerActionsCallbackInterfaces = new List<IPlayerActions>();
private readonly InputAction m_Player_Drag;
/// <summary>
/// Provides access to input actions defined in input action map "Player".
/// </summary>
public struct PlayerActions
{
private @GameInput m_Wrapper;
/// <summary>
/// Construct a new instance of the input action map wrapper class.
/// </summary>
public PlayerActions(@GameInput wrapper) { m_Wrapper = wrapper; }
/// <summary>
/// Provides access to the underlying input action "Player/Drag".
/// </summary>
public InputAction @Drag => m_Wrapper.m_Player_Drag;
/// <summary>
/// Provides access to the underlying input action map instance.
/// </summary>
public InputActionMap Get() { return m_Wrapper.m_Player; }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.Enable()" />
public void Enable() { Get().Enable(); }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.Disable()" />
public void Disable() { Get().Disable(); }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.enabled" />
public bool enabled => Get().enabled;
/// <summary>
/// Implicitly converts an <see ref="PlayerActions" /> to an <see ref="InputActionMap" /> instance.
/// </summary>
public static implicit operator InputActionMap(PlayerActions set) { return set.Get(); }
/// <summary>
/// Adds <see cref="InputAction.started"/>, <see cref="InputAction.performed"/> and <see cref="InputAction.canceled"/> callbacks provided via <param cref="instance" /> on all input actions contained in this map.
/// </summary>
/// <param name="instance">Callback instance.</param>
/// <remarks>
/// If <paramref name="instance" /> is <c>null</c> or <paramref name="instance"/> have already been added this method does nothing.
/// </remarks>
/// <seealso cref="PlayerActions" />
public void AddCallbacks(IPlayerActions instance)
{
if (instance == null || m_Wrapper.m_PlayerActionsCallbackInterfaces.Contains(instance)) return;
m_Wrapper.m_PlayerActionsCallbackInterfaces.Add(instance);
@Drag.started += instance.OnDrag;
@Drag.performed += instance.OnDrag;
@Drag.canceled += instance.OnDrag;
}
/// <summary>
/// Removes <see cref="InputAction.started"/>, <see cref="InputAction.performed"/> and <see cref="InputAction.canceled"/> callbacks provided via <param cref="instance" /> on all input actions contained in this map.
/// </summary>
/// <remarks>
/// Calling this method when <paramref name="instance" /> have not previously been registered has no side-effects.
/// </remarks>
/// <seealso cref="PlayerActions" />
private void UnregisterCallbacks(IPlayerActions instance)
{
@Drag.started -= instance.OnDrag;
@Drag.performed -= instance.OnDrag;
@Drag.canceled -= instance.OnDrag;
}
/// <summary>
/// Unregisters <param cref="instance" /> and unregisters all input action callbacks via <see cref="PlayerActions.UnregisterCallbacks(IPlayerActions)" />.
/// </summary>
/// <seealso cref="PlayerActions.UnregisterCallbacks(IPlayerActions)" />
public void RemoveCallbacks(IPlayerActions instance)
{
if (m_Wrapper.m_PlayerActionsCallbackInterfaces.Remove(instance))
UnregisterCallbacks(instance);
}
/// <summary>
/// Replaces all existing callback instances and previously registered input action callbacks associated with them with callbacks provided via <param cref="instance" />.
/// </summary>
/// <remarks>
/// If <paramref name="instance" /> is <c>null</c>, calling this method will only unregister all existing callbacks but not register any new callbacks.
/// </remarks>
/// <seealso cref="PlayerActions.AddCallbacks(IPlayerActions)" />
/// <seealso cref="PlayerActions.RemoveCallbacks(IPlayerActions)" />
/// <seealso cref="PlayerActions.UnregisterCallbacks(IPlayerActions)" />
public void SetCallbacks(IPlayerActions instance)
{
foreach (var item in m_Wrapper.m_PlayerActionsCallbackInterfaces)
UnregisterCallbacks(item);
m_Wrapper.m_PlayerActionsCallbackInterfaces.Clear();
AddCallbacks(instance);
}
}
/// <summary>
/// Provides a new <see cref="PlayerActions" /> instance referencing this action map.
/// </summary>
public PlayerActions @Player => new PlayerActions(this);
/// <summary>
/// Interface to implement callback methods for all input action callbacks associated with input actions defined by "Player" which allows adding and removing callbacks.
/// </summary>
/// <seealso cref="PlayerActions.AddCallbacks(IPlayerActions)" />
/// <seealso cref="PlayerActions.RemoveCallbacks(IPlayerActions)" />
public interface IPlayerActions
{
/// <summary>
/// Method invoked when associated input action "Drag" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
/// </summary>
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
void OnDrag(InputAction.CallbackContext context);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: e12dddb05c8ef254d9f2e5846f83827d

View File

@@ -0,0 +1,46 @@
{
"version": 1,
"name": "GameInput",
"maps": [
{
"name": "Player",
"id": "843e6a41-5f3f-41a7-babf-23aad7346cc5",
"actions": [
{
"name": "Drag",
"type": "PassThrough",
"id": "838180ae-e461-4653-a2e3-17ffb634a89d",
"expectedControlType": "Vector2",
"processors": "",
"interactions": "",
"initialStateCheck": true
}
],
"bindings": [
{
"name": "",
"id": "131b8ff7-9803-469f-bd97-edc6236ff88a",
"path": "<Touchscreen>/touch0/delta",
"interactions": "",
"processors": "",
"groups": "",
"action": "Drag",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "50de849f-4620-498a-b592-9dc32d7036c4",
"path": "<Mouse>/delta",
"interactions": "Press",
"processors": "",
"groups": "",
"action": "Drag",
"isComposite": false,
"isPartOfComposite": false
}
]
}
],
"controlSchemes": []
}

View File

@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 809203ef385099e49a8f168a3c29879b
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
generateWrapperCode: 1
wrapperCodePath:
wrapperClassName:
wrapperCodeNamespace:

View File

@@ -2,5 +2,5 @@ using UnityEngine;
public interface IInputReader
{
Vector2 DragInput { get; }
Vector2 dragInput{get;}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: c5a95c1688b1c994998a288e1fe772be

View File

@@ -0,0 +1,40 @@
using System;
using UnityEngine;
using UnityEngine.InputSystem;
[CreateAssetMenu(fileName = "InputReader", menuName = "Scriptable Objects/InputReader")]
public class InputReader : ScriptableObject, IInputReader, GameInput.IPlayerActions
{
public Action<Vector2> OnDragValueChanged;
public Vector2 _dragInput;
public Vector2 dragInput
{
get=> _dragInput;
private set
{
_dragInput = value;
OnDragValueChanged?.Invoke(_dragInput);
}
}
private GameInput inputActions;
private void OnEnable()
{
if(inputActions==null)
{
inputActions = new GameInput();
inputActions.Player.SetCallbacks(this);
}
inputActions.Enable();
}
private void OnDisable()
{
inputActions?.Player.Disable();
}
public void OnDrag(InputAction.CallbackContext context)
{
dragInput = context.ReadValue<Vector2>();
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 4a3c33239e86293489f00da63bb17b7b

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 4fd243b30ced38840a3173920b99929f

View File

@@ -1,26 +0,0 @@
using UnityEngine;
using UnityEngine.InputSystem;
using static GameInputs;
public class InputReader : ScriptableObject, IInputReader, IPlayerActions
{
private GameInputs _inputActions;
public Vector2 DragInput { get; private set;}
void OnEnable()
{
if (_inputActions == null)
{
_inputActions = new GameInputs();
_inputActions.Player.SetCallbacks(this);
}
_inputActions.Enable();
}
public void OnDrag(InputAction.CallbackContext context)
{
DragInput = context.ReadValue<Vector2>();
Debug.Log(DragInput);
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: bf23afefa375da349994d4977b4ffe60

View File

@@ -5,18 +5,13 @@ using VContainer.Unity;
public class GameLifeTimeScope : LifetimeScope
{
[SerializeField] private InputReader inputReader;
[SerializeField] private InputReader _inputReader;
protected override void Configure(IContainerBuilder builder)
{
builder.RegisterComponentInHierarchy<PlatformPool>();
builder.RegisterComponentInHierarchy<JumpingBall>();
builder.RegisterComponentInHierarchy<Player>();
builder.RegisterComponentInHierarchy<PlatformManager>();
builder.RegisterComponent<IInputReader>(inputReader);
}
public void IsWorking()
{
Debug.Log("True");
builder.RegisterInstance(_inputReader).As<IInputReader>();
}
}

View File

@@ -7,12 +7,13 @@ public class Platform : MonoBehaviour
private Transform playerTransform;
[Inject] private PlatformPool pool;
[Inject] private PlatformManager manager;
[Inject] private IInputReader inputReader;
[Inject] private Player player;
//[Inject] private IInputReader inputReader;
void Start()
{
playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
playerTransform = player.transform;
}
void Update()

View File

@@ -1,3 +1,4 @@
using System;
using UnityEngine;
using VContainer;
@@ -5,13 +6,30 @@ public class PlatformManager : MonoBehaviour
{
private GameObject currentPlatfrom;
[Inject] private PlatformPool pool;
[Inject] private InputReader inputReader;
private int yPos=0;
public int rotspeed = 1;
void Start()
{
ShowInitialPlatforms();
}
private void OnEnable()
{
inputReader.OnDragValueChanged += DragPerformed;
}
private void OnDisable()
{
inputReader.OnDragValueChanged -= DragPerformed;
}
private void DragPerformed(Vector2 drag)
{
float rotAmount = -drag.normalized.x * rotspeed;
transform.Rotate(0, rotAmount, 0);
}
public void ShowInitialPlatforms()
{

View File

@@ -0,0 +1,6 @@
using UnityEngine;
public interface IPlayer
{
bool isDead { get; }
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 9eea067ca01685f4790d3cd0214321ea

View File

@@ -0,0 +1,34 @@
using UnityEngine;
public class Player : MonoBehaviour, IPlayer
{
public float jumpforce = 4f;
public Rigidbody BallRb;
public bool isDead { get; private set; }
void Start()
{
if (BallRb == null)
{
BallRb = GetComponent<Rigidbody>();
}
}
void OnCollisionEnter(Collision collision)
{
if (collision.collider.CompareTag("Platform"))
{
BallRb.linearVelocity = new Vector3(0, jumpforce, 0);
}
else if (collision.collider.CompareTag("Death"))
{
Die();
}
}
void Die()
{
Debug.Log("Player is Dead");
isDead = true;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a23214d81cfb862488bd856cfdffb896