Change how unity items are created

This commit is contained in:
lukeIam committed 2018-09-06 16:21:33 +02:00
1 parent e014028051
commit 4373f82935
10 files changed
+462 -18

No files matched your search

+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 12381c3e5b8c4e541a877d595946dd6d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,200 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_SourcePrefab: {fileID: 0}
m_RootGameObject: {fileID: 1966144771655286}
m_IsPrefabAsset: 1
--- !u!1 &1094000285414416
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 6
m_Component:
- component: {fileID: 224568005189137124}
- component: {fileID: 222213690434086188}
- component: {fileID: 114757654218611918}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1966144771655286
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 6
m_Component:
- component: {fileID: 224884237807121316}
- component: {fileID: 222972214585096474}
- component: {fileID: 114388705746467828}
- component: {fileID: 114844865165499350}
m_Layer: 5
m_Name: Button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &114388705746467828
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1966144771655286}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!114 &114757654218611918
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1094000285414416}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Button
--- !u!114 &114844865165499350
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1966144771655286}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 114388705746467828}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!222 &222213690434086188
CanvasRenderer:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1094000285414416}
m_CullTransparentMesh: 0
--- !u!222 &222972214585096474
CanvasRenderer:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1966144771655286}
m_CullTransparentMesh: 0
--- !u!224 &224568005189137124
RectTransform:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1094000285414416}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 224884237807121316}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!224 &224884237807121316
RectTransform:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1966144771655286}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 224568005189137124}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0, y: 0}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bc34731dd21939247b5c9254d4307b2c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,82 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_SourcePrefab: {fileID: 0}
m_RootGameObject: {fileID: 1542340953995188}
m_IsPrefabAsset: 1
--- !u!1 &1542340953995188
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 6
m_Component:
- component: {fileID: 224602382829853072}
- component: {fileID: 222072198485326264}
- component: {fileID: 114731255706898750}
m_Layer: 5
m_Name: Screen
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &114731255706898750
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1542340953995188}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &222072198485326264
CanvasRenderer:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1542340953995188}
m_CullTransparentMesh: 0
--- !u!224 &224602382829853072
RectTransform:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1542340953995188}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: eeb852befc56aaa45a6bb1b327fea10d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,88 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_SourcePrefab: {fileID: 0}
m_RootGameObject: {fileID: 1076347645928538}
m_IsPrefabAsset: 1
--- !u!1 &1076347645928538
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 6
m_Component:
- component: {fileID: 224531540781515994}
- component: {fileID: 222269818069538684}
- component: {fileID: 114109650637778326}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &114109650637778326
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1076347645928538}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: New Text
--- !u!222 &222269818069538684
CanvasRenderer:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1076347645928538}
m_CullTransparentMesh: 0
--- !u!224 &224531540781515994
RectTransform:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1076347645928538}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0, y: 0}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e1487a0441a6d4048bd44d842a45fbad
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
@@ -282,6 +282,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4a5ac8535e59348478ff8674aae12300, type: 3}
m_Name:
m_EditorClassIdentifier:
ScreenPrefab: {fileID: 1542340953995188, guid: eeb852befc56aaa45a6bb1b327fea10d,
type: 2}
ButtonPrefab: {fileID: 1966144771655286, guid: bc34731dd21939247b5c9254d4307b2c,
type: 2}
TextPrefab: {fileID: 1076347645928538, guid: e1487a0441a6d4048bd44d842a45fbad, type: 2}
--- !u!114 &1432963079
MonoBehaviour:
m_ObjectHideFlags: 0
+48 -17
View File
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Facebook.Yoga;
using UnityEngine;
using UnityEngine.UI;
@@ -15,6 +16,11 @@ public class ScreenHandler : MonoBehaviour
private Dictionary<EUiScreenType, GameObject> _screens = new Dictionary<EUiScreenType, GameObject>();
private EUiScreenType _currentScreen = EUiScreenType.None;
public GameObject ScreenPrefab;
public GameObject ButtonPrefab;
public GameObject TextPrefab;
// Use this for initialization
void Start ()
{
@@ -70,21 +76,48 @@ public class ScreenHandler : MonoBehaviour
private GameObject CreateElement(CUiScreen screenInfo, string screenName = "")
{
return CreateElementBase(screenInfo, screenName);
GameObject screen = Instantiate(ScreenPrefab);
screen.name = screenName;
SetProperties(screenInfo, screen);
return screen;
}
private void SetProperties(CUiScreen screenInfo, GameObject screen)
{
PositionElement(screenInfo, screen);
AddChildren(screenInfo, screen);
}
private GameObject CreateElement(CUiElementButton buttonInfo)
{
var button = CreateElementBase(buttonInfo);
button.AddComponent<Button>();
var button = Instantiate(ButtonPrefab);
SetProperties(buttonInfo, button);
return button;
}
private void SetProperties(CUiElementButton buttonInfo, GameObject button)
{
Button btnComponent = button.GetComponent<Button>();
btnComponent.onClick.AddListener(buttonInfo.Controller.RaiseClicked);
return button;
PositionElement(buttonInfo, button);
// TODO: Remove: making test buttons green
button.GetComponent<Image>().color = Color.green;
var buttonText = button.GetComponentInChildren<Text>().gameObject;
SetProperties((CUiElementText)buttonInfo.AsQueryable().FirstOrDefault(x => x is CUiElementText), buttonText);
}
private GameObject CreateElement(CUiElementText textInfo)
{
return CreateElementBase(textInfo);
var text = Instantiate(TextPrefab);
SetProperties(textInfo, text);
return text;
}
private void SetProperties(CUiElementText textInfo, GameObject text)
{
PositionElement(textInfo, text);
}
private GameObject CreateElement(YogaNode node)
@@ -110,22 +143,20 @@ public class ScreenHandler : MonoBehaviour
throw new NotSupportedException();
}
private GameObject CreateElementBase(CUiElement element, string elementName = "")
private void AddChildren(CUiElement uiElement, GameObject gameObj)
{
GameObject newGameObject = new GameObject(name: elementName);
newGameObject.AddComponent<RectTransform>();
RectTransform rectTransform = newGameObject.GetComponent<RectTransform>();
rectTransform.anchoredPosition.Set(0f,0f);
rectTransform.rect.position.Set(element.LayoutX, element.LayoutY);
rectTransform.rect.size.Set(element.LayoutWidth, element.LayoutHeight);
foreach (YogaNode child in element)
foreach (YogaNode child in uiElement)
{
var newObj = CreateElement(child);
newObj.GetComponent<RectTransform>().SetParent(newGameObject.transform);
newObj.GetComponent<RectTransform>().SetParent(gameObj.transform);
}
}
return newGameObject;
private static void PositionElement(CUiElement element, GameObject newGameObject)
{
RectTransform rectTransform = newGameObject.GetComponent<RectTransform>();
rectTransform.anchoredPosition.Set(0f, 0f);
rectTransform.rect.position.Set(element.LayoutX, element.LayoutY);
rectTransform.rect.size.Set(element.LayoutWidth, element.LayoutHeight);
}
}
@@ -3,7 +3,13 @@ guid: 4a5ac8535e59348478ff8674aae12300
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
defaultReferences:
- ScreenPrefab: {fileID: 1542340953995188, guid: eeb852befc56aaa45a6bb1b327fea10d,
type: 2}
- ButtonPrefab: {fileID: 1966144771655286, guid: bc34731dd21939247b5c9254d4307b2c,
type: 2}
- TextPrefab: {fileID: 1076347645928538, guid: e1487a0441a6d4048bd44d842a45fbad,
type: 2}
executionOrder: 0
icon: {instanceID: 0}
userData: