Squashed commit of the following:

commit 428243f4a6
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Sat Aug 29 13:43:13 2026 +0300

    Squashed commit of the following:

    commit 68e78fa464
    Author: AsanoRema <asanorema2036@gmail.com>
    Date:   Sat Aug 29 13:41:49 2026 +0300

        Updated .gitignore

commit 9f87122a34
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Sat Aug 29 13:34:57 2026 +0300

    Added Dohya

commit f6a7547e84
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Fri Aug 21 17:59:13 2026 +0300

    Fixed

commit b98901c366
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 17:37:22 2026 +0300

    Added new particle Package

commit bb2f4a3b16
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 17:17:48 2026 +0300

    Map mehanic ready to multiplayer

commit c01ff800f6
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 16:16:19 2026 +0300

    Squashed commit of the following:

    commit 173bbb165c
    Author: henjkey <henjkey@gmail.com>
    Date:   Fri Aug 14 18:51:23 2026 +0500

        Mappp

    commit d559ab338a
    Author: henjkey <henjkey@gmail.com>
    Date:   Thu Aug 13 18:42:41 2026 +0500

        Map

        Controller
        Coordinates
        Target System
        Crosshair System
        Radar System
This commit is contained in:
2026-08-29 13:45:55 +03:00
parent 68e78fa464
commit ffa1064063
3344 changed files with 4722286 additions and 105458 deletions
@@ -0,0 +1,30 @@
using UnityEngine;
namespace VLB_Samples
{
[RequireComponent(typeof(Camera))]
public class CameraToggleBeamVisibility : MonoBehaviour
{
[SerializeField] KeyCode m_KeyCode = KeyCode.Space;
void Update()
{
if (Input.GetKeyDown(m_KeyCode))
{
var cam = GetComponent<Camera>();
int layerID = VLB.Config.Instance.geometryLayerID;
int layerMask = 1 << layerID;
if ((cam.cullingMask & layerMask) == layerMask)
{
cam.cullingMask &= ~layerMask;
}
else
{
cam.cullingMask |= layerMask;
}
}
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c266971950f6c8249832946861d54fa8
timeCreated: 1507707781
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,53 @@
using UnityEngine;
namespace VLB_Samples
{
[RequireComponent(typeof(Collider), typeof(Rigidbody), typeof(MeshRenderer))]
public class CheckIfInsideBeam : MonoBehaviour
{
bool isInsideBeam = false;
Material m_Material = null;
Collider m_Collider = null;
void Start()
{
m_Collider = GetComponent<Collider>();
Debug.Assert(m_Collider);
var meshRenderer = GetComponent<MeshRenderer>();
if (meshRenderer)
m_Material = meshRenderer.material;
Debug.Assert(m_Material);
}
void Update()
{
if (m_Material)
{
m_Material.SetColor("_Color", isInsideBeam ? Color.green : Color.red);
}
}
void FixedUpdate()
{
isInsideBeam = false;
}
void OnTriggerStay(Collider trigger)
{
var dynamicOcclusion = trigger.GetComponent<VLB.DynamicOcclusionRaycasting>();
if (dynamicOcclusion)
{
// This GameObject is inside the beam's TriggerZone.
// Make sure it's not hidden by an occluder
isInsideBeam = !dynamicOcclusion.IsColliderHiddenByDynamicOccluder(m_Collider);
}
else
{
isInsideBeam = true;
}
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: aa80be3114439164cb57d970b56bc816
timeCreated: 1531568745
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,13 @@
using UnityEngine;
namespace VLB_Samples
{
public class FeaturesNotSupportedMessage : MonoBehaviour
{
void Start()
{
if(!VLB.Noise3D.isSupported)
Debug.LogWarning(VLB.Noise3D.isNotSupportedString);
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: dd7339057fb22c84ea73609eb1efb890
timeCreated: 1514884227
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,72 @@
using UnityEngine;
namespace VLB_Samples
{
public class FreeCameraController : MonoBehaviour
{
public float cameraSensitivity = 90;
public float speedNormal = 10;
public float speedFactorSlow = 0.25f;
public float speedFactorFast = 3;
public float speedClimb = 4;
float rotationH = 0.0f;
float rotationV = 0.0f;
bool m_UseMouseView = true;
bool useMouseView
{
get { return m_UseMouseView; }
set
{
m_UseMouseView = value;
Cursor.lockState = value ? CursorLockMode.Locked : CursorLockMode.None;
Cursor.visible = !value;
}
}
void Start()
{
useMouseView = true;
var euler = transform.rotation.eulerAngles;
rotationH = euler.y;
rotationV = euler.x;
if (rotationV > 180f)
rotationV -= 360f;
}
void Update()
{
if (useMouseView)
{
rotationH += Input.GetAxis("Mouse X") * cameraSensitivity * Time.deltaTime;
rotationV -= Input.GetAxis("Mouse Y") * cameraSensitivity * Time.deltaTime;
}
rotationV = Mathf.Clamp(rotationV, -90, 90);
transform.rotation = Quaternion.AngleAxis(rotationH, Vector3.up);
transform.rotation *= Quaternion.AngleAxis(rotationV, Vector3.right);
var speed = speedNormal;
if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) speed *= speedFactorFast;
else if (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) speed *= speedFactorSlow;
transform.position += speed * Input.GetAxis("Vertical") * Time.deltaTime * transform.forward;
transform.position += speed * Input.GetAxis("Horizontal") * Time.deltaTime * transform.right;
if (Input.GetKey(KeyCode.Q)) { transform.position += speedClimb * Time.deltaTime * Vector3.up; }
if (Input.GetKey(KeyCode.E)) { transform.position += speedClimb * Time.deltaTime * Vector3.down; }
if (
#if !UNITY_EDITOR
Input.GetMouseButtonDown(0) ||
#endif
Input.GetMouseButtonDown(1) || Input.GetMouseButtonDown(2))
useMouseView = !useMouseView;
if (Input.GetKeyDown(KeyCode.Escape))
useMouseView = false;
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 73cef9fd683cb8c4fb218b6e5dc2f16e
timeCreated: 1504706738
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,87 @@
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace VLB_Samples
{
public class LightGenerator : MonoBehaviour
{
[Range(1, 100)]
[SerializeField] int CountX = 10;
[Range(1, 100)]
[SerializeField] int CountY = 10;
[SerializeField] float OffsetUnits = 1;
[SerializeField] float PositionY = 1;
[SerializeField] bool NoiseEnabled = false;
[SerializeField] bool AddLight = true;
public void Generate()
{
for (int i = 0; i < CountX; ++i)
{
for (int j = 0; j < CountY; ++j)
{
GameObject gao = null;
if(AddLight)
gao = new GameObject("Light_" + i + "_" + j, typeof(Light), typeof(VLB.VolumetricLightBeam), typeof(Rotater));
else
gao = new GameObject("Light_" + i + "_" + j, typeof(VLB.VolumetricLightBeam), typeof(Rotater));
gao.transform.SetPositionAndRotation( new Vector3(i * OffsetUnits, PositionY, j * OffsetUnits),
Quaternion.Euler(Random.Range(-45, 45) + 90f, Random.Range(0, 360), 0));
var beam = gao.GetComponent<VLB.VolumetricLightBeam>();
if (AddLight)
{
var light = gao.GetComponent<Light>();
light.type = LightType.Spot;
light.color = new Color(Random.value, Random.value, Random.value, 1.0f);
light.range = Random.Range(3f, 8f);
light.intensity = Random.Range(0.2f, 5f);
light.spotAngle = Random.Range(10f, 90f);
if(VLB.Config.Instance.geometryOverrideLayer)
{
// remove the layer of the beams from the light's culling mask to prevent from breaking GPU Instancing
light.cullingMask = ~(1 << VLB.Config.Instance.geometryLayerID);
}
}
else
{
beam.color = new Color(Random.value, Random.value, Random.value, 1.0f);
beam.fallOffEnd = Random.Range(3f, 8f);
beam.spotAngle = Random.Range(10f, 90f);
}
beam.coneRadiusStart = Random.Range(0f, 0.1f);
beam.geomCustomSides = Random.Range(12, 36);
beam.fresnelPow = Random.Range(1, 7.5f);
beam.noiseMode = NoiseEnabled ? VLB.NoiseMode.WorldSpace : VLB.NoiseMode.Disabled;
var rotater = gao.GetComponent<Rotater>();
rotater.EulerSpeed = new Vector3(0, Random.Range(-500, 500), 0);
}
}
}
}
#if UNITY_EDITOR
[CustomEditor(typeof(LightGenerator))]
public class LightGeneratorEditor : Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
if (Application.isPlaying) return;
if (GUILayout.Button("Generate"))
{
(target as LightGenerator).Generate();
}
}
}
#endif
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 40a4b77a9b84c3040a81c0b7a629248a
timeCreated: 1507704560
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,18 @@
using UnityEngine;
using UnityEngine.Serialization;
namespace VLB_Samples
{
public class Rotater : MonoBehaviour
{
[FormerlySerializedAs("m_EulerSpeed")]
public Vector3 EulerSpeed = Vector3.zero;
void Update()
{
var euler = transform.rotation.eulerAngles;
euler += EulerSpeed * Time.deltaTime;
transform.rotation = Quaternion.Euler(euler);
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 031dc173b8912b246aaed3b7e88df54e
timeCreated: 1504710999
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: