From 0f563fdc6874ee39713303ba457a05693fb08fa1 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 20 Apr 2022 12:33:00 +0800 Subject: *topdown transform --- AlienSurvival/Assets/Scripts/Physics/Editor.meta | 8 -- .../Physics/Editor/TopDownTransformInspector.cs | 50 ------- .../Editor/TopDownTransformInspector.cs.meta | 11 -- .../Assets/Scripts/Physics/TopDownTransform.cs | 115 ---------------- .../Scripts/Physics/TopDownTransform.cs.meta | 11 -- .../Scripts/Rendering/TopDownShadowCaster.cs | 51 ------- .../Scripts/Rendering/TopDownShadowCaster.cs.meta | 11 -- AlienSurvival/Assets/Scripts/TopDown.meta | 8 ++ AlienSurvival/Assets/Scripts/TopDown/Editor.meta | 8 ++ .../TopDown/Editor/TopDownTransformInspector.cs | 50 +++++++ .../Editor/TopDownTransformInspector.cs.meta | 11 ++ .../Assets/Scripts/TopDown/TopDownShadowCaster.cs | 57 ++++++++ .../Scripts/TopDown/TopDownShadowCaster.cs.meta | 11 ++ .../Assets/Scripts/TopDown/TopDownSorting.cs | 25 ++++ .../Assets/Scripts/TopDown/TopDownSorting.cs.meta | 11 ++ .../Assets/Scripts/TopDown/TopDownTransform.cs | 150 +++++++++++++++++++++ .../Scripts/TopDown/TopDownTransform.cs.meta | 11 ++ AlienSurvival/Assets/Scripts/Utils.meta | 8 ++ .../Assets/Scripts/Utils/GameObjectUtils.cs | 18 +++ .../Assets/Scripts/Utils/GameObjectUtils.cs.meta | 11 ++ 20 files changed, 379 insertions(+), 257 deletions(-) delete mode 100644 AlienSurvival/Assets/Scripts/Physics/Editor.meta delete mode 100644 AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs delete mode 100644 AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs.meta delete mode 100644 AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs delete mode 100644 AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs.meta delete mode 100644 AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs delete mode 100644 AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs.meta create mode 100644 AlienSurvival/Assets/Scripts/TopDown.meta create mode 100644 AlienSurvival/Assets/Scripts/TopDown/Editor.meta create mode 100644 AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs create mode 100644 AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs.meta create mode 100644 AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs create mode 100644 AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs.meta create mode 100644 AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs create mode 100644 AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs.meta create mode 100644 AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs create mode 100644 AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs.meta create mode 100644 AlienSurvival/Assets/Scripts/Utils.meta create mode 100644 AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs create mode 100644 AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs.meta (limited to 'AlienSurvival/Assets/Scripts') diff --git a/AlienSurvival/Assets/Scripts/Physics/Editor.meta b/AlienSurvival/Assets/Scripts/Physics/Editor.meta deleted file mode 100644 index fa70114..0000000 --- a/AlienSurvival/Assets/Scripts/Physics/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 80c8d9ba082ca27419e9d6e6bbb39f6d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs b/AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs deleted file mode 100644 index b1ceaab..0000000 --- a/AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEditor; - - -[CustomEditor(typeof(TopDownTransform))] -public class TopDownTransformInspector : Editor -{ - - TopDownTransform m_TopDownTransform; - - private void OnEnable() - { - m_TopDownTransform = target as TopDownTransform; - } - - private void OnDisable() - { - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - } - - protected override void OnHeaderGUI() - { - base.OnHeaderGUI(); - } - - //https://answers.unity.com/questions/463207/how-do-you-make-a-custom-handle-respond-to-the-mou.html - private void OnSceneGUI() - { - Vector3 pos3d = m_TopDownTransform.Get3DPosition(); - - float arrowSize = 2f; - - Handles.color = Handles.xAxisColor; - m_TopDownTransform.x += EditorHandlesHelper.PositionArrow(pos3d, Vector3.right, 1f, arrowSize).x; - - Handles.color = Handles.yAxisColor; - m_TopDownTransform.y -= EditorHandlesHelper.PositionArrow(pos3d, Vector3.up, 1f, arrowSize).y; - - Handles.color = Handles.zAxisColor; - m_TopDownTransform.z -= EditorHandlesHelper.PositionArrow(pos3d + new Vector3(0, -m_TopDownTransform.z - 0.1f, 0), Vector3.up, m_TopDownTransform.z, arrowSize, true).y; - - } - -} \ No newline at end of file diff --git a/AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs.meta b/AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs.meta deleted file mode 100644 index 09d9899..0000000 --- a/AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a1871ab3b887e6b41ba4a43777b53192 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs b/AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs deleted file mode 100644 index d93a453..0000000 --- a/AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -#if UNITY_EDITOR -using UnityEditor; -#endif - -/// -/// 用于TopDown的Transform,支持模拟垂直高度 -/// -[ExecuteInEditMode] -[RequireComponent(typeof(Transform))] -public class TopDownTransform : MonoBehaviour -{ - // 右手系 - // z - // | - // | /y - // | / - // |/______x - - // x, y, z ( z = height) - [SerializeField] private Vector3 m_LocalPosition; - - // 只能绕一个虚拟轴旋转 - [SerializeField] private float m_LocalRotation; - - // x, z - [SerializeField] private Vector2 m_LocalScale; - - public float x - { - get - { - return m_LocalPosition.x; - } - set - { - m_LocalPosition.x = value; - Project(); - } - } - public float y - { - get - { - return m_LocalPosition.y; - } - set - { - m_LocalPosition.y = value; - Project(); - } - } - - public float z - { - get - { - return m_LocalPosition.z; - } - set - { - m_LocalPosition.z = value; - Project(); - } - } - /// - /// “投影”,把坐标转换到Transform上 - /// - public void Project() - { - Vector3 pos = transform.position; - pos.x = m_LocalPosition.x; - pos.y = m_LocalPosition.y + m_LocalPosition.z; - - transform.position = pos; - } - - private void Update() - { - Project(); - } - - public Vector3 Get3DPosition() - { - Vector3 pos = new Vector3(); - pos.x = m_LocalPosition.x; - pos.y = m_LocalPosition.y + m_LocalPosition.z; - pos.z = transform.position.z; - return pos; - } - - public Vector3 GetGround3DPosition() - { - Vector3 pos = new Vector3(); - pos.x = m_LocalPosition.x; - pos.y = m_LocalPosition.y ; - pos.z = transform.position.z; - return pos; - } - -#if UNITY_EDITOR - private void OnDrawGizmos() - { - // dash line - Vector3 start = transform.position; - Vector3 end = start - new Vector3(0, m_LocalPosition.z, 0); - - Handles.DrawDottedLine(start, end, 1f); - Handles.DrawWireCube(end, new Vector3(0.1f, 0.1f, 0f)); - } -#endif - -} \ No newline at end of file diff --git a/AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs.meta b/AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs.meta deleted file mode 100644 index cc1445d..0000000 --- a/AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2b1fbd797bf03674e9d1b81edc11e3f1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: b7cb09ba3d43de2418ea93e3aa9cd4e4, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs b/AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs deleted file mode 100644 index 00415bc..0000000 --- a/AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -[ExecuteInEditMode, DisallowMultipleComponent] -[RequireComponent(typeof(TopDownTransform))] -[RequireComponent(typeof(SpriteRenderer))] -public class TopDownShadowCaster : MonoBehaviour -{ - [SerializeField] private Color m_Color = Color.black; - [SerializeField] private Vector2 m_Scale = new Vector2(1, 0.5f); - - private GameObject m_Shadow; - private SpriteRenderer m_ShadowRenderer; - - private TopDownTransform m_Coord; - private SpriteRenderer m_SpriteRenderer; - - private void Start() - { - m_Coord = GetComponent(); - m_SpriteRenderer = GetComponent(); - - if (m_Shadow == null) - { - m_Shadow = new GameObject("shadow"); - m_Shadow.hideFlags = HideFlags.HideAndDontSave; - m_Shadow.transform.SetParent(transform); - - m_Shadow.transform.localScale = m_Scale; - - m_ShadowRenderer = m_Shadow.AddComponent(); - m_ShadowRenderer.color = m_Color; - m_ShadowRenderer.sprite = m_SpriteRenderer.sprite; - m_ShadowRenderer.sortingLayerName = "Shadow"; - - } - } - - private void Update() - { - if (m_Shadow == null) - return; - - m_ShadowRenderer.color = m_Color; - - Vector3 pos = m_Coord.GetGround3DPosition(); - m_Shadow.transform.position = pos; - } - -} diff --git a/AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs.meta b/AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs.meta deleted file mode 100644 index f81ad1b..0000000 --- a/AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f1ce201566412034c99687a8c5b94075 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/TopDown.meta b/AlienSurvival/Assets/Scripts/TopDown.meta new file mode 100644 index 0000000..e81c7d0 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 42550630c8f16584fa0e12e91bd6db2a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/TopDown/Editor.meta b/AlienSurvival/Assets/Scripts/TopDown/Editor.meta new file mode 100644 index 0000000..fa70114 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 80c8d9ba082ca27419e9d6e6bbb39f6d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs b/AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs new file mode 100644 index 0000000..b1ceaab --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs @@ -0,0 +1,50 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; + + +[CustomEditor(typeof(TopDownTransform))] +public class TopDownTransformInspector : Editor +{ + + TopDownTransform m_TopDownTransform; + + private void OnEnable() + { + m_TopDownTransform = target as TopDownTransform; + } + + private void OnDisable() + { + } + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + } + + protected override void OnHeaderGUI() + { + base.OnHeaderGUI(); + } + + //https://answers.unity.com/questions/463207/how-do-you-make-a-custom-handle-respond-to-the-mou.html + private void OnSceneGUI() + { + Vector3 pos3d = m_TopDownTransform.Get3DPosition(); + + float arrowSize = 2f; + + Handles.color = Handles.xAxisColor; + m_TopDownTransform.x += EditorHandlesHelper.PositionArrow(pos3d, Vector3.right, 1f, arrowSize).x; + + Handles.color = Handles.yAxisColor; + m_TopDownTransform.y -= EditorHandlesHelper.PositionArrow(pos3d, Vector3.up, 1f, arrowSize).y; + + Handles.color = Handles.zAxisColor; + m_TopDownTransform.z -= EditorHandlesHelper.PositionArrow(pos3d + new Vector3(0, -m_TopDownTransform.z - 0.1f, 0), Vector3.up, m_TopDownTransform.z, arrowSize, true).y; + + } + +} \ No newline at end of file diff --git a/AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs.meta b/AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs.meta new file mode 100644 index 0000000..09d9899 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a1871ab3b887e6b41ba4a43777b53192 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs b/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs new file mode 100644 index 0000000..e027771 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs @@ -0,0 +1,57 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[ExecuteInEditMode, DisallowMultipleComponent] +[RequireComponent(typeof(TopDownTransform))] +[RequireComponent(typeof(SpriteRenderer))] +public class TopDownShadowCaster : MonoBehaviour +{ + [SerializeField] private Color m_Color = new Color32(0,0,0, 58); + [SerializeField] private Vector2 m_Scale = new Vector2(1, 0.5f); + + private GameObject m_Shadow; + private SpriteRenderer m_ShadowRenderer; + + private TopDownTransform m_Coord; + private SpriteRenderer m_SpriteRenderer; + + public void Flip(bool flip) + { + m_ShadowRenderer.flipX = flip; + } + + private void Start() + { + m_Coord = GetComponent(); + m_SpriteRenderer = GetComponent(); + + if (m_Shadow == null) + { + m_Shadow = new GameObject("shadow"); + m_Shadow.hideFlags = HideFlags.HideAndDontSave; + m_Shadow.transform.SetParent(transform); + + m_Shadow.transform.localScale = m_Scale; + + m_ShadowRenderer = m_Shadow.AddComponent(); + m_ShadowRenderer.color = m_Color; + m_ShadowRenderer.sprite = m_SpriteRenderer.sprite; + m_ShadowRenderer.sortingLayerName = "Shadow"; + + } + } + + private void Update() + { + if (m_Shadow == null) + return; + + m_ShadowRenderer.color = m_Color; + m_ShadowRenderer.sprite = m_SpriteRenderer.sprite; + + Vector3 pos = m_Coord.GetGround3DPosition(); + m_Shadow.transform.position = pos; + } + +} diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs.meta b/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs.meta new file mode 100644 index 0000000..f81ad1b --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f1ce201566412034c99687a8c5b94075 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs b/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs new file mode 100644 index 0000000..d7ce933 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs @@ -0,0 +1,25 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[DisallowMultipleComponent] +[RequireComponent(typeof(SpriteRenderer))] +[RequireComponent(typeof(TopDownTransform))] +public class TopDownSorting : MonoBehaviour +{ + private SpriteRenderer m_SpriteRenderer; + private TopDownTransform m_Coord; + + private void Start() + { + m_SpriteRenderer = GetComponent(); + m_Coord = GetComponent(); + } + + private void Update() + { + // 根据y设置sortOrder + m_SpriteRenderer.sortingOrder = (int)(-m_Coord.y * 100); + } + +} diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs.meta b/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs.meta new file mode 100644 index 0000000..fa499d2 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7a9f0293bd6e86e43bbbefc99b5e2722 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs new file mode 100644 index 0000000..7e4c261 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs @@ -0,0 +1,150 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + +/// +/// 用于TopDown的Transform,支持模拟垂直高度 +/// +[ExecuteInEditMode] +[RequireComponent(typeof(Transform))] +public class TopDownTransform : MonoBehaviour +{ + // 右手系 + // z + // | + // | /y + // | / + // |/______x + + // x, y, z ( z = height) + [SerializeField] private Vector3 m_LocalPosition; + + // 只能绕一个虚拟轴旋转 + [SerializeField] private float m_LocalRotation; + + // x, z + [SerializeField] private Vector2 m_LocalScale; + + public Vector3 position + { + get + { + return m_LocalPosition; + } + set + { + m_LocalPosition = value; + } + } + + public float x + { + get + { + return m_LocalPosition.x; + } + set + { + m_LocalPosition.x = value; + Project(); + } + } + public float y + { + get + { + return m_LocalPosition.y; + } + set + { + m_LocalPosition.y = value; + Project(); + } + } + + public float z + { + get + { + return m_LocalPosition.z; + } + set + { + m_LocalPosition.z = value; + Project(); + } + } + public float height + { + get + { + return z; + } + set + { + m_LocalPosition.z = value; + Project(); + } + } + + /// + /// “投影”,把坐标转换到Transform上 + /// + public void Project() + { + Vector3 pos = transform.position; + pos.x = m_LocalPosition.x; + pos.y = m_LocalPosition.y + m_LocalPosition.z; + + transform.position = pos; + } + + private void Start() + { + SpriteRenderer sr = GetComponent(); + if (sr) + { + gameObject.AddOrGetComponent(); + gameObject.AddOrGetComponent(); + } + } + + private void Update() + { + Project(); + } + + public Vector3 Get3DPosition() + { + Vector3 pos = new Vector3(); + pos.x = m_LocalPosition.x; + pos.y = m_LocalPosition.y + m_LocalPosition.z; + pos.z = transform.position.z; + return pos; + } + + public Vector3 GetGround3DPosition() + { + Vector3 pos = new Vector3(); + pos.x = m_LocalPosition.x; + pos.y = m_LocalPosition.y ; + pos.z = transform.position.z; + return pos; + } + +#if UNITY_EDITOR + private void OnDrawGizmos() + { + // dash line + Vector3 start = transform.position; + Vector3 end = start - new Vector3(0, m_LocalPosition.z, 0); + + Handles.DrawDottedLine(start, end, 1f); + Handles.DrawWireCube(end, new Vector3(0.1f, 0.1f, 0f)); + } +#endif + +} \ No newline at end of file diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs.meta b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs.meta new file mode 100644 index 0000000..cc1445d --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2b1fbd797bf03674e9d1b81edc11e3f1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: b7cb09ba3d43de2418ea93e3aa9cd4e4, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/Utils.meta b/AlienSurvival/Assets/Scripts/Utils.meta new file mode 100644 index 0000000..8866322 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/Utils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c8b3daee7311a114c9b54fedba31b631 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs b/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs new file mode 100644 index 0000000..416f097 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public static class GameObjectUtils +{ + + public static T AddOrGetComponent(this GameObject go) where T : MonoBehaviour + { + T comp = go.GetComponent(); + if(comp == null) + { + comp = go.AddComponent(); + } + return comp; + } + +} \ No newline at end of file diff --git a/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs.meta b/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs.meta new file mode 100644 index 0000000..eb4979a --- /dev/null +++ b/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a2cfaa149609631408d5f2f301a232fe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.1-26-g67d0