Skip to content

Commit 1618bbc

Browse files
committed
Various updates
1 parent 283044e commit 1618bbc

File tree

139 files changed

+4472
-1824
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

139 files changed

+4472
-1824
lines changed

Assets/UnityX/Scripts/Components/FPSManager/FPSDebugSettings.asset

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ MonoBehaviour:
99
m_GameObject: {fileID: 0}
1010
m_Enabled: 1
1111
m_EditorHideFlags: 0
12-
m_Script: {fileID: 11500000, guid: c06b13ccb47976e49aac4ef1d8851976, type: 3}
12+
m_Script: {fileID: 11500000, guid: 3de28897739ed4c3c88db915910ade32, type: 3}
1313
m_Name: FPSDebugSettings
1414
m_EditorClassIdentifier:
1515
fpsGraphHistoryTime: 1
@@ -18,7 +18,7 @@ MonoBehaviour:
1818
x: 10
1919
y: 10
2020
width: 100
21-
height: 400
22-
showInEditor: 1
23-
showInDevBuilds: 0
21+
height: 80
22+
showInEditor: 0
23+
showInDevBuilds: 1
2424
showInReleaseBuilds: 0

Assets/UnityX/Scripts/Components/FPSManager/FPSDebugSettings.asset.meta

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/UnityX/Scripts/Components/FPSManager/FPSManager.cs

+9-3
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,11 @@ private void OnGUI()
111111
else if (!Debug.isDebugBuild && debugSettings.showInReleaseBuilds) show = true;
112112
}
113113
if(show) {
114-
StringBuilder sb = new StringBuilder();
114+
var guiScale = Mathf.Max(Screen.width/320, Screen.height/600f);
115+
var oldM = GUI.matrix;
116+
GUI.matrix = Matrix4x4.Scale(guiScale*Vector3.one);
117+
118+
StringBuilder sb = new StringBuilder();
115119
sb.AppendLine("FPS");
116120
sb.Append("TAR: ");
117121
sb.AppendLine(string.Format("{0:n1}",settings.targetFrameRate));
@@ -121,8 +125,10 @@ private void OnGUI()
121125
sb.AppendLine(string.Format("{0:n1}",maxFPS));
122126
sb.Append("MIN: ");
123127
sb.AppendLine(string.Format("{0:n1}",minFPS));
124-
GUI.Label (debugSettings.fpsPos, sb.ToString());
125-
}
128+
GUI.Box (debugSettings.fpsPos, sb.ToString());
129+
130+
GUI.matrix = oldM;
131+
}
126132
}
127133

128134
private List<float> deltaTimes = new List<float>();

Assets/UnityX/Scripts/Components/FPSManager/FPSSettings.asset

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ MonoBehaviour:
99
m_GameObject: {fileID: 0}
1010
m_Enabled: 1
1111
m_EditorHideFlags: 0
12-
m_Script: {fileID: 11500000, guid: d9fc80d2d09d87e46bebf39d52fdc7a5, type: 3}
12+
m_Script: {fileID: 11500000, guid: b8b234e0a0aa04deaa22bb2fa03e9b86, type: 3}
1313
m_Name: FPSSettings
1414
m_EditorClassIdentifier:
1515
targetFrameRate: 60

Assets/UnityX/Scripts/Components/FPSManager/FPSSettings.asset.meta

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/UnityX/Scripts/Components/PolygonRenderer/PolygonRenderer.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ Vector2[] RecalculateUVs (Rect polygonRect, Vector2[] points) {
9292

9393
if(uvMode == UVMode.Rect) {
9494
for(int i = 0; i < points.Length; i++) {
95-
uvs[i] = polygonRect.GetNormalizedPositionInsideRect(points[i]);
95+
uvs[i] = Rect.PointToNormalized(polygonRect, points[i]);
9696
}
9797
} else if(uvMode == UVMode.Shape) {
9898
Vector2 uvXDirection = MathX.DegreesToVector2(uvXAngle);

Assets/UnityX/Scripts/Components/Prototype/Prototype.cs

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using UnityEngine;
22
using System.Collections.Generic;
33
using System;
4+
using System.Linq;
45

56
/// <summary>
67
/// Convenience way to create objects in the hierarchy that are a bit like prefabs, except that they
@@ -68,10 +69,9 @@ public T Instantiate<T>(Transform parent = null, bool setActive = true) where T
6869

6970
// Re-use instance from pool
7071
if( _instancePool != null && _instancePool.Count > 0 ) {
71-
var instanceIdx = _instancePool.Count-1;
72-
instance = _instancePool[instanceIdx];
73-
instance.transform.SetParent(parent ?? transform.parent, false);
74-
_instancePool.RemoveAt(instanceIdx);
72+
instance = _instancePool.First();
73+
_instancePool.Remove(instance);
74+
instance.transform.SetParent(parent ?? transform.parent, false);
7575
if(instance == null)
7676
Debug.LogError("Prototype instance for type "+typeof(T).Name+" in pool is null!");
7777
}
@@ -155,15 +155,17 @@ void AddToPool(Prototype instancePrototype)
155155
{
156156
if( !isOriginalPrototype )
157157
Debug.LogError("Adding "+instancePrototype.name+" to prototype pool of "+this.name+" but this appears to be an instance itself?");
158-
158+
if(!instancePrototype.inUse)
159+
Debug.LogError("Adding "+instancePrototype.name+" to prototype pool of "+this.name+" but it's already in the pool!");
160+
159161
if( instancePrototype.OnPreReturnToPool != null )
160162
instancePrototype.OnPreReturnToPool(this);
161163

162164
instancePrototype.gameObject.SetActive(false);
163165
if(instancePrototype.transform.parent != transform.parent) instancePrototype.transform.SetParent(transform.parent);
164166
instancePrototype.inUse = false;
165167

166-
if( _instancePool == null ) _instancePool = new List<Prototype>();
168+
if( _instancePool == null ) _instancePool = new HashSet<Prototype>();
167169
_instancePool.Add(instancePrototype);
168170

169171
if( instancePrototype.OnReturnToPool != null )
@@ -172,7 +174,7 @@ void AddToPool(Prototype instancePrototype)
172174

173175
Prototype _originalPrototype;
174176
[System.NonSerialized]
175-
List<Prototype> _instancePool;
177+
HashSet<Prototype> _instancePool;
176178

177179
#if UNITY_EDITOR
178180
static bool applicationQuitting;

Assets/UnityX/Scripts/Components/Region/Editor/RegionEditor.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ void OnSceneGUI () {
7272
var rotation = Quaternion.LookRotation(data.worldNormal, matrix.MultiplyVector(Vector3.up));
7373
var distance = data.height * 0.5f;
7474
distance = matrix.MultiplyVector(new Vector3(0,0,distance)).magnitude;
75-
Vector3 newPos = Handles.FreeMoveHandle(worldPosition + data.worldNormal * distance, rotation, handleSize, Vector3.zero, ((int controlID, Vector3 handlePosition, Quaternion handleRotation, float size, EventType eventType) => {
75+
Vector3 newPos = Handles.FreeMoveHandle(worldPosition + data.worldNormal * distance, handleSize, Vector3.zero, ((int controlID, Vector3 handlePosition, Quaternion handleRotation, float size, EventType eventType) => {
7676
handleRotation = rotation;
7777
Handles.DrawDottedLine(worldPosition, handlePosition, 5);
7878
Handles.ConeHandleCap(controlID, handlePosition, handleRotation, handleSize, eventType);

Assets/UnityX/Scripts/Components/Render Texture Creator/RenderTextureCreator.cs

+40-29
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
using System;
12
using UnityEngine;
23

34
public class RenderTextureCreator : MonoBehaviour {
4-
[SerializeField]
5-
RenderTexture _renderTexture;
5+
[SerializeField] RenderTexture _renderTexture;
66
public RenderTexture renderTexture => _renderTexture;
77

88
public enum RenderTextureDepth {
@@ -20,7 +20,7 @@ public enum RenderTextureAntiAliasing {
2020
public bool fullScreen = false;
2121
public Vector2Int renderTextureSize = new Vector2Int(512, 512);
2222
public FilterMode filterMode = FilterMode.Bilinear;
23-
public RenderTextureDepth renderTextureDepth = RenderTextureDepth._24;
23+
public RenderTextureDepth renderTextureDepth = RenderTextureDepth._0;
2424
public RenderTextureFormat renderTextureFormat = RenderTextureFormat.ARGB32;
2525
public RenderTextureReadWrite renderTextureReadWrite = RenderTextureReadWrite.Default;
2626
public bool enableRandomWrite = false;
@@ -58,37 +58,23 @@ static int screenHeight {
5858

5959
public System.Action<RenderTexture> OnCreateRenderTexture;
6060

61+
void Awake() {
62+
_renderTexture = null;
63+
}
64+
6165
protected virtual void OnValidate () {
6266
// ReleaseRenderTexture();
6367
RefreshRenderTexture();
6468
}
6569

6670
public void RefreshRenderTexture () {
6771
Vector2Int targetSize = calculatedTextureSize;
72+
if (targetSize.x <= 0 || targetSize.y <= 0) {
73+
Debug.LogWarning($"{GetType().Name}: Target size is {targetSize}, so not creating RenderTexture.", this);
74+
return;
75+
}
6876

69-
var textureIsNullOrRequiresChange =
70-
_renderTexture != null &&
71-
(_renderTexture.width != targetSize.x ||
72-
_renderTexture.height != targetSize.y ||
73-
_renderTexture.depth != (int)renderTextureDepth ||
74-
_renderTexture.format != renderTextureFormat ||
75-
_renderTexture.enableRandomWrite != enableRandomWrite ||
76-
_renderTexture.filterMode != filterMode ||
77-
_renderTexture.antiAliasing != (int)antiAliasing
78-
);
79-
80-
if(textureIsNullOrRequiresChange) {
81-
ReleaseRenderTexture();
82-
_renderTexture.width = targetSize.x;
83-
_renderTexture.height = targetSize.y;
84-
_renderTexture.depth = (int)renderTextureDepth;
85-
_renderTexture.format = renderTextureFormat;
86-
_renderTexture.enableRandomWrite = enableRandomWrite;
87-
_renderTexture.filterMode = filterMode;
88-
_renderTexture.antiAliasing = (int)antiAliasing;
89-
_renderTexture.Create();
90-
}
91-
if(_renderTexture == null && targetSize.x > 0 && targetSize.y > 0) {
77+
if(_renderTexture == null) {
9278
_renderTexture = new RenderTexture (targetSize.x, targetSize.y, (int)renderTextureDepth, renderTextureFormat, renderTextureReadWrite) {
9379
name = $"RenderTextureCreator {transform.HierarchyPath()}",
9480
enableRandomWrite = enableRandomWrite,
@@ -97,20 +83,45 @@ public void RefreshRenderTexture () {
9783
hideFlags = HideFlags.HideAndDontSave
9884
};
9985
if(OnCreateRenderTexture != null) OnCreateRenderTexture(_renderTexture);
86+
} else {
87+
var textureRequiresChange =
88+
_renderTexture != null &&
89+
(_renderTexture.width != targetSize.x ||
90+
_renderTexture.height != targetSize.y ||
91+
_renderTexture.depth != (int)renderTextureDepth ||
92+
_renderTexture.format != renderTextureFormat ||
93+
_renderTexture.enableRandomWrite != enableRandomWrite ||
94+
_renderTexture.filterMode != filterMode ||
95+
_renderTexture.antiAliasing != (int)antiAliasing
96+
);
97+
98+
if(textureRequiresChange) {
99+
ReleaseRenderTexture();
100+
_renderTexture.width = targetSize.x;
101+
_renderTexture.height = targetSize.y;
102+
_renderTexture.depth = (int)renderTextureDepth;
103+
_renderTexture.format = renderTextureFormat;
104+
_renderTexture.enableRandomWrite = enableRandomWrite;
105+
_renderTexture.filterMode = filterMode;
106+
_renderTexture.antiAliasing = (int)antiAliasing;
107+
_renderTexture.Create();
108+
if(OnCreateRenderTexture != null) OnCreateRenderTexture(_renderTexture);
109+
}
100110
}
101111
if (_renderTexture.depth != (int) renderTextureDepth) {
102-
Debug.LogWarning($"{GetType().Name}: Depth {(int)renderTextureDepth} appears not to be supported. You should change this so that the RenderTexture doesn't change each frame.");
112+
Debug.LogWarning($"{GetType().Name}: Depth {(int)renderTextureDepth} appears not to be supported. You should change this so that the RenderTexture doesn't change each frame.", this);
103113
}
104114
}
105115

106-
void ReleaseRenderTexture () {
116+
public void ReleaseRenderTexture () {
107117
if(_renderTexture == null) return;
108118
if(RenderTexture.active == _renderTexture) RenderTexture.active = null;
109119
_renderTexture.Release();
110120
}
111121

112-
void DestroyRenderTexture() {
122+
public void DestroyRenderTexture() {
113123
if(_renderTexture == null) return;
124+
if(RenderTexture.active == _renderTexture) RenderTexture.active = null;
114125
if(Application.isPlaying) Destroy(_renderTexture);
115126
else DestroyImmediate(_renderTexture);
116127
_renderTexture = null;

Assets/UnityX.meta Assets/UnityX/Scripts/Components/UI/Background Blur UI.meta

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)