Skip to content

Commit 0a164cf

Browse files
committed
add: utillities
1 parent 2ad6b83 commit 0a164cf

14 files changed

Lines changed: 162 additions & 0 deletions

Assets/Code/Game.asmdef

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "Game",
3+
"rootNamespace": "",
4+
"references": [
5+
"Zenject",
6+
"Unity.TextMeshPro"
7+
],
8+
"includePlatforms": [],
9+
"excludePlatforms": [],
10+
"allowUnsafeCode": false,
11+
"overrideReferences": false,
12+
"precompiledReferences": [],
13+
"autoReferenced": true,
14+
"defineConstraints": [],
15+
"versionDefines": [],
16+
"noEngineReferences": false
17+
}

Assets/Code/Game.asmdef.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Code/Utilities.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Code/Utilities/Extensions.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System;
2+
3+
namespace Utilities.Editor
4+
{
5+
public static class ArrayExtensions
6+
{
7+
public static int IndexOf<T>(this T[] array, T value)
8+
{
9+
return Array.IndexOf(array, value);
10+
}
11+
}
12+
}

Assets/Code/Utilities/Extensions/ArrayExtensions.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using System.Collections.Generic;
2+
using UnityEngine;
3+
4+
namespace Utilities.Extensions
5+
{
6+
public static class CameraExtensions
7+
{
8+
public static List<T> GetVisibleTargets<T>(Camera camera, List<T> targets, float visibilityOffset = 0f) where T : Component
9+
{
10+
List<T> visibleTargets = new List<T>();
11+
12+
foreach (T target in targets)
13+
{
14+
if (IsTargetVisible(camera, target, visibilityOffset))
15+
visibleTargets.Add(target);
16+
}
17+
18+
return visibleTargets;
19+
}
20+
21+
public static bool IsTargetVisible<T>(Camera camera, T target, float visibilityOffset = 0f) where T : Component
22+
{
23+
Vector3 viewportPoint = camera.WorldToViewportPoint(target.transform.position);
24+
25+
return viewportPoint.x + visibilityOffset >= 0 && viewportPoint.x - visibilityOffset <= 1 &&
26+
viewportPoint.y + visibilityOffset >= 0 && viewportPoint.y - visibilityOffset <= 1 &&
27+
viewportPoint.z > 0;
28+
}
29+
}
30+
}

Assets/Code/Utilities/Extensions/CameraExtensions.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System;
2+
3+
namespace Extensions
4+
{
5+
public static class FunctionalExtensions
6+
{
7+
public static T With<T>(this T self, Action<T> set)
8+
{
9+
set.Invoke(self);
10+
return self;
11+
}
12+
}
13+
}

Assets/Code/Utilities/Extensions/FunctionalExtensions.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)