BS 0.2.0 Visual

This commit is contained in:
2025-07-21 15:58:52 +08:00
parent f6750189d0
commit d0e5420f95
142 changed files with 11176 additions and 11 deletions

View File

@@ -0,0 +1,26 @@
using System.Collections.Generic;
using System;
using static Convention.WindowsUI.Variant.PropertiesWindow;
using System.Reflection;
using UnityEngine;
using UnityEngine.UI;
namespace Convention.WindowsUI.Variant
{
public class ConversationItem : PropertyListItem
{
[Resources, SerializeField] private Image m_Icon;
[Resources, SerializeField] private Text m_Role;
[Resources, SerializeField] private Text m_Text;
[Setting] public float LineHeight = 25;
public void Setup([In] string text, [In] string role, int lineSize)
{
m_Icon.sprite = ConversationWindow.instance.GetRoleIconSprite(role);
m_Role.text = text;
m_Text.text = text;
var rect = this.transform as RectTransform;
rect.sizeDelta = new(rect.sizeDelta.x, LineHeight * lineSize);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ec9571cdaa96bb5468eb62021185574e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,76 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Convention.WindowsUI.Variant
{
public class ConversationWindow : MonoSingleton<ConversationWindow>
{
[Resources, OnlyNotNullMode] public WindowManager m_WindowManager;
[Resources, SerializeField, OnlyNotNullMode] private PropertiesWindow m_PropertiesWindow;
private RegisterWrapper<ConversationWindow> m_RegisterWrapper;
[Resources, Header("HeadLine"), OnlyNotNullMode] public Image HeadIcon;
[Resources, OnlyNotNullMode] public ModernUIInputField HeadText = new();
[Resources] public List<Text> HeadTitles = new();
private List<PropertiesWindow.ItemEntry> m_entries = new();
[Resources, Header("Roles Icon"), SerializeField, HopeNotNull] private ScriptableObject m_RolesIcon;
[Resources, SerializeField, OnlyNotNullMode] private Sprite m_DefaultRoleIcon;
public Sprite GetRoleIconSprite([In] string role)
{
if (m_RolesIcon == null)
return m_DefaultRoleIcon;
if (m_RolesIcon.uobjects.TryGetValue(role, out var roleIcon_) && roleIcon_ is Sprite roleIcon)
return roleIcon;
return m_DefaultRoleIcon;
}
private void Reset()
{
m_WindowManager = GetComponent<WindowManager>();
m_PropertiesWindow = GetComponent<PropertiesWindow>();
}
private void Start()
{
m_RegisterWrapper = new(() =>
{
});
}
private void OnDestroy()
{
m_RegisterWrapper.Release();
}
public void SetHeadText(string text)
{
HeadText.text = text;
}
public void SetHeadTitle(int index, string text)
{
HeadTitles[index].text = text;
}
[Resources, Header("InputField")] private ModernUIInputField m_InputField;
public delegate void MessageListener([In] string message);
public event MessageListener messageListener;
public void SendMessage()
{
messageListener?.Invoke(m_InputField.text);
m_InputField.text = "";
}
public void CreateNewMessageListItem()
{
PropertiesWindow.ItemEntry entry = m_PropertiesWindow.CreateRootItemEntries(1)[0];
m_entries.Add(entry);
var item = entry.ref_value.GetComponent<ConversationItem>();
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: bbd4a444651c94648b33642126ab25b8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: