chunk 1: core gameplay scripts scenes runtime assets

This commit is contained in:
2026-04-06 11:02:34 +03:00
parent fa0388bc79
commit 0d11a097d8
703 changed files with 2292651 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
using UnityEngine;
using System.Collections;
[ExecuteAlways]
public class UIBillboardBehaviour : MonoBehaviour
{
private Transform gameplayCameraTransform;
void OnEnable()
{
gameplayCameraTransform = CameraManager.Instance.GetGameplayCameraTransform();
}
void OnDisable()
{
gameplayCameraTransform = null;
}
void LateUpdate()
{
if(gameplayCameraTransform)
{
transform.LookAt(transform.position + gameplayCameraTransform.rotation * Vector3.forward, gameplayCameraTransform.rotation * Vector3.up);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 0d237ecbece995f4b99ac5ebab0f1baf
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,29 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UIContextPanelsBehaviour : MonoBehaviour
{
public GameObject[] contextPanels;
private int currentContextPanelID;
public void SetupContextPanels()
{
currentContextPanelID = 0;
for(int i = 0; i < contextPanels.Length; i++)
{
contextPanels[i].SetActive(false);
}
contextPanels[currentContextPanelID].SetActive(true);
}
public void UpdateContextPanels(int newContextPanelID)
{
contextPanels[currentContextPanelID].SetActive(false);
currentContextPanelID = newContextPanelID;
contextPanels[currentContextPanelID].SetActive(true);
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a55701e00d9d61e4d857a2040c6c872d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,100 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class UIMenuBehaviour : MonoBehaviour
{
[Header("Sub-Behaviours")]
public UIContextPanelsBehaviour uiContextPanelsBehaviour;
public UIPanelRebindBehaviour uiPanelRebindBehaviour;
[Header("Core Object References")]
public GameObject uiMenuCameraObject;
public GameObject uiMenuCanvasObject;
[Header("Default Selected")]
public GameObject defaultSelectedGameObject;
[Header("Player Display")]
public DeviceDisplayConfigurator deviceDisplayconfigurator;
public Image deviceDisplayIcon;
public TextMeshProUGUI IDDisplayText;
public void SetupBehaviour()
{
UpdateUIMenuState(false);
}
public void UpdateUIMenuState(bool newState)
{
switch (newState)
{
case true:
ResetContextPanels();
UpdateEventSystemDefaultSelected();
UpdateEventSystemUIInputModule();
UpdateUIPlayerDisplay();
UpdateUIRebindActions();
break;
case false:
break;
}
UpdateCoreUIObjectsState(newState);
}
void ResetContextPanels()
{
uiContextPanelsBehaviour.SetupContextPanels();
}
void UpdateCoreUIObjectsState(bool newState)
{
uiMenuCameraObject.SetActive(newState);
uiMenuCanvasObject.SetActive(newState);
}
void UpdateUIPlayerDisplay()
{
/*PlayerController focusedPlayerController = GameObject.Find("GameManager").GetComponent<GameManager>().GetFocusedPlayerController();
//ID
int focusedPlayerID = focusedPlayerController.GetPlayerID();
IDDisplayText.SetText((focusedPlayerID + 1).ToString());
//Color
Color focusedPlayerDeviceColor = deviceDisplayconfigurator.GetDeviceColor(focusedPlayerController.GetPlayerInput());
deviceDisplayIcon.color = focusedPlayerDeviceColor;*/
}
void UpdateEventSystemDefaultSelected()
{
EventSystemManager.Instance.SetCurrentSelectedGameObject(defaultSelectedGameObject);
}
void UpdateEventSystemUIInputModule()
{
EventSystemManager.Instance.UpdateActionAssetToFocusedPlayer();
}
void UpdateUIRebindActions()
{
uiPanelRebindBehaviour.UpdateRebindActions();
}
public void SwitchUIContextPanels(int selectedPanelID)
{
uiContextPanelsBehaviour.UpdateContextPanels(selectedPanelID);
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d4cf0d34234797b4f8e05fdf8db216f7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,13 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UIMenuOptionBehaviour : MonoBehaviour
{
public int contextPanelID;
public void ButtonOptionSelected()
{
UIManager.Instance.MenuButtonOptionSelected(contextPanelID);
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ab404cb73cfd59041ae6fa39d672efef
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,32 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
public class UIMenuPlayerDeviceDisplayBehaviour : MonoBehaviour
{
[Header("Device Display")]
public DeviceDisplayConfigurator deviceDisplayConfigurator;
[Header("Display References")]
public TextMeshProUGUI playerIDDisplay;
public TextMeshProUGUI playerDeviceDisplay;
public Image playerDeviceDisplayIcon;
public void SetPlayerDeviceDisplay(int playerID, string playerDevicePath)
{
playerIDDisplay.SetText((playerID + 1).ToString());
UpdatePlayerDeviceDisplay(playerDevicePath);
}
public void UpdatePlayerDeviceDisplay(string playerDevicePath)
{
/*
playerDeviceDisplay.SetText(deviceDisplayConfigurator.GetDeviceDisplayName(playerDevicePath));
playerDeviceDisplayIcon.color = deviceDisplayConfigurator.GetDeviceDisplayColor(playerDevicePath);
*/
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: fb9fa96d7e2cd5d429bb276c06a46c72
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,20 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UIPanelQuitBehaviour : MonoBehaviour
{
public void ButtonPressedQuitGame()
{
QuitGame();
}
void QuitGame()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: dda3a4598827131489bee68ae015c43e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,16 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UIPanelRebindBehaviour : MonoBehaviour
{
public UIRebindActionBehaviour[] uiRebindActionBehaviours;
public void UpdateRebindActions()
{
for(int i = 0; i < uiRebindActionBehaviours.Length; i++)
{
uiRebindActionBehaviours[i].UpdateBehaviour();
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1d0ee8987180cc640b92a50bdf409025
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,144 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;
using TMPro;
public class UIRebindActionBehaviour : MonoBehaviour
{
//Input System Stored Data
private InputActionAsset focusedInputActionAsset;
private PlayerInput focusedPlayerInput;
private InputAction focusedInputAction;
private InputActionRebindingExtensions.RebindingOperation rebindOperation;
[Header("Rebind Settings")]
public string actionName;
[Header("Device Display Settings")]
public DeviceDisplayConfigurator deviceDisplaySettings;
[Header("UI Display - Action Text")]
public TextMeshProUGUI actionNameDisplayText;
[Header("UI Display - Binding Text or Icon")]
public TextMeshProUGUI bindingNameDisplayText;
public Image bindingIconDisplayImage;
[Header("UI Display - Buttons")]
public GameObject rebindButtonObject;
public GameObject resetButtonObject;
[Header("UI Display - Listening Text")]
public GameObject listeningForInputObject;
public void UpdateBehaviour()
{
GetFocusedPlayerInput();
SetupFocusedInputAction();
UpdateActionDisplayUI();
UpdateBindingDisplayUI();
}
void GetFocusedPlayerInput()
{
/*PlayerController focusedPlayerController = GameObject.Find("GameManager").GetComponent<GameManager>().GetFocusedPlayerController();
focusedPlayerInput = focusedPlayerController.GetPlayerInput();*/
}
void SetupFocusedInputAction()
{
focusedInputAction = focusedPlayerInput.actions.FindAction(actionName);
}
public void ButtonPressedStartRebind()
{
StartRebindProcess();
}
void StartRebindProcess()
{
ToggleGameObjectState(rebindButtonObject, false);
ToggleGameObjectState(resetButtonObject, false);
ToggleGameObjectState(listeningForInputObject, true);
rebindOperation = focusedInputAction.PerformInteractiveRebinding()
.WithControlsExcluding("<Mouse>/position")
.WithControlsExcluding("<Mouse>/delta")
.WithControlsExcluding("<Gamepad>/Start")
.WithControlsExcluding("<Keyboard>/p")
.WithControlsExcluding("<Keyboard>/escape")
.OnMatchWaitForAnother(0.1f)
.OnComplete(operation => RebindCompleted());
rebindOperation.Start();
}
void RebindCompleted()
{
rebindOperation.Dispose();
rebindOperation = null;
ToggleGameObjectState(rebindButtonObject, true);
ToggleGameObjectState(resetButtonObject, true);
ToggleGameObjectState(listeningForInputObject, false);
UpdateActionDisplayUI();
UpdateBindingDisplayUI();
}
public void ButtonPressedResetBinding()
{
ResetBinding();
}
public void ResetBinding()
{
InputActionRebindingExtensions.RemoveAllBindingOverrides(focusedInputAction);
UpdateBindingDisplayUI();
}
void UpdateActionDisplayUI()
{
actionNameDisplayText.SetText(actionName);
}
void UpdateBindingDisplayUI()
{
int controlBindingIndex = focusedInputAction.GetBindingIndexForControl(focusedInputAction.controls[0]);
string currentBindingInput = InputControlPath.ToHumanReadableString(focusedInputAction.bindings[controlBindingIndex].effectivePath, InputControlPath.HumanReadableStringOptions.OmitDevice);
Sprite currentDisplayIcon = deviceDisplaySettings.GetDeviceBindingIcon(focusedPlayerInput, currentBindingInput);
if(currentDisplayIcon)
{
ToggleGameObjectState(bindingNameDisplayText.gameObject, false);
ToggleGameObjectState(bindingIconDisplayImage.gameObject, true);
bindingIconDisplayImage.sprite = currentDisplayIcon;
} else if(currentDisplayIcon == null)
{
ToggleGameObjectState(bindingNameDisplayText.gameObject, true);
ToggleGameObjectState(bindingIconDisplayImage.gameObject, false);
bindingNameDisplayText.SetText(currentBindingInput);
}
}
void ToggleGameObjectState(GameObject targetGameObject, bool newState)
{
targetGameObject.SetActive(newState);
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d6005e3b6c6ebbd4a98d34a9488cf066
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: