This commit is contained in:
2025-06-16 15:24:27 +02:00
commit 83a46b2fc4
1452 changed files with 214261 additions and 0 deletions

View File

@ -0,0 +1,54 @@
using Mirror;
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public class Marker : MonoBehaviour
{
public MarkerDefinition markerDefinition;
/* public CanvasGroup fadeGroup;
public CanvasGroup aimFadeGroup;
public AnimationCurve fadeRemap;*/
public Vector3 targetPos { get; private set; }
public GameObject worldObject { get; private set; }
MarkerHandler markerHandler;
Transform objToFollow;
float timeAlive;
private void Update()
{
if (objToFollow)
{
targetPos = objToFollow.transform.position;
}
if (markerDefinition.unlimitedLife) return;
timeAlive += Time.deltaTime;
if (timeAlive > markerDefinition.lifeDuration)
{
DestroyMarker();
}
}
public virtual void InitializeMarker(MarkerHandler markerHandler, GameObject worldObject, Vector3 targetPos, Transform objToFollow)
{
this.markerHandler = markerHandler;
this.worldObject = worldObject;
this.targetPos = targetPos;
this.objToFollow = objToFollow;
/* aimFadeGroup.alpha = 0;
fadeGroup.alpha = 0;*/
}
public virtual void DestroyMarker()
{
markerHandler.RemoveMarker(this);
}
}

View File

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

View File

@ -0,0 +1,18 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(menuName = "Markers/Marker")]
public class MarkerDefinition : ScriptableObject
{
public byte id;
[Space(10)]
public GameObject markerLocalObj, markerWorldObj;
public float lifeDuration;
public bool unlimitedLife;
public float minFadeAmount;
public bool fadeByDotProduct;
public bool fadeByAim;
}

View File

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

View File

@ -0,0 +1,89 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MarkerHandler : MonoBehaviour
{
public static MarkerHandler instance;
[SerializeField] private MarkerDefinition[] allMarkerDefinitions;
[SerializeField] private Transform markerContainer;
List<Marker> markerInstances = new List<Marker>();
Camera cam;
private void Awake()
{
instance = this;
}
private void Start()
{
cam = Camera.main;
}
private void LateUpdate()
{
UpdateMarkers();
}
void UpdateMarkers()
{
for (int i = 0; i < markerInstances.Count; i++)
{
var currentMarker = markerInstances[i];
currentMarker.transform.position = cam.WorldToScreenPoint(currentMarker.targetPos);
// aimFadeAmount = 1 - player.weaponManager.aim.aimAmount;
bool isBehindCam = currentMarker.transform.position.z < 0;
float dot = Vector3.Dot(cam.transform.forward, (cam.transform.position - currentMarker.targetPos).normalized);
//Debug.Log(dot);
/*
if (currentMarker.markerDefinition.fadeByAim)
currentMarker.aimFadeGroup.alpha = isBehindCam ? 0 : Mathf.Max(aimFadeAmount, currentMarker.markerDefinition.minFadeAmount);
if (currentMarker.markerDefinition.fadeByDotProduct)
currentMarker.fadeGroup.alpha = isBehindCam ? 0 : Mathf.Clamp01(Mathf.Clamp(currentMarker.fadeRemap.Evaluate(Mathf.Clamp01(-dot)), currentMarker.markerDefinition.minFadeAmount, 1));
currentMarker.gameObject.SetActive(!player.IsUIOpen());*/
}
}
public Marker SpawnMarker(byte markerID, Vector3 targetPos, Transform objToFollow)
{
MarkerDefinition markerDef = allMarkerDefinitions[markerID];
GameObject localObj = Instantiate(markerDef.markerLocalObj, markerContainer);
GameObject worldObj = null;
Marker marker = localObj.GetComponent<Marker>();
if (markerDef.markerWorldObj)
{
worldObj = Instantiate(markerDef.markerWorldObj, targetPos, Quaternion.identity);
}
marker.InitializeMarker(this, worldObj, targetPos, objToFollow);
AddMarker(marker);
return marker;
}
public void AddMarker(Marker marker)
{
markerInstances.Add(marker);
}
public void RemoveMarker(Marker marker)
{
markerInstances.Remove(marker);
if (marker.worldObject)
Destroy(marker.worldObject);
Destroy(marker.gameObject);
}
}

View File

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

View File

@ -0,0 +1,25 @@
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class NametagMarker : Marker
{
public TMP_Text username_text, ready_text;
public Image ready_image, pfp_Image;
public void UpdateTag(string username, bool isReady)
{
username_text.text = username;
ready_image.color = isReady ? MainMenu.instance.readyColor : MainMenu.instance.notReadyColor;
ready_text.text = isReady ? "Ready" : "Not Ready";
ready_text.color = isReady ? MainMenu.instance.readyColor : MainMenu.instance.notReadyColor;
}
public void UpdatePFP(Sprite icon)
{
pfp_Image.sprite = icon;
}
}

View File

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