合并代码
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace MuHua {
|
||||
public class UIViewExtend<ViewModel> : MonoBehaviour where ViewModel : UIViewModel {
|
||||
public ViewModel view;
|
||||
public virtual VisualElement element => view.Q<VisualElement>();
|
||||
|
||||
public T Q<T>(string name = null, string className = null) where T : VisualElement {
|
||||
return element.Q<T>(name, className);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3f91d8edeffb1143b3eb547a09cc321
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,15 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace MuHua {
|
||||
public class UIViewModel : MonoBehaviour {
|
||||
public UIDocument document;
|
||||
public VisualElement element => document.rootVisualElement;
|
||||
|
||||
public T Q<T>(string name = null, string className = null) where T : VisualElement {
|
||||
return element.Q<T>(name, className);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f15a2fe11989e884d9294ac8577594a8
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,15 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace MuHua {
|
||||
public class UIViewTemplate<Data> {
|
||||
public Data value;
|
||||
public VisualElement element;
|
||||
public virtual void SetValue(VisualTreeAsset asset, Data value) {
|
||||
this.value = value;
|
||||
this.element = asset.Instantiate();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1962450aff64953408148b16dd9ff69f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace MuHua {
|
||||
public static class UIViewTool {
|
||||
public static List<Template> Instantiate<Template, V>(this VisualElement parent, VisualTreeAsset template, V[] list) where Template : UIViewTemplate<V>, new() {
|
||||
List<Template> templates = new List<Template>();
|
||||
for (int i = 0; i < list.Length; i++) {
|
||||
templates.Add(parent.Instantiate<Template, V>(template, list[i]));
|
||||
}
|
||||
return templates;
|
||||
}
|
||||
public static List<Template> Instantiate<Template, V>(this VisualElement parent, VisualTreeAsset template, List<V> list) where Template : UIViewTemplate<V>, new() {
|
||||
List<Template> templates = new List<Template>();
|
||||
for (int i = 0; i < list.Count; i++) {
|
||||
templates.Add(parent.Instantiate<Template, V>(template, list[i]));
|
||||
}
|
||||
return templates;
|
||||
}
|
||||
public static Template Instantiate<Template, V>(this VisualElement parent, VisualTreeAsset template, V value) where Template : UIViewTemplate<V>, new() {
|
||||
Template temp = new Template();
|
||||
temp.SetValue(template, value);
|
||||
parent.Add(temp.element);
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f47b238dc04f6f243b00dd9ab82419bd
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user