Skip to content
This repository has been archived by the owner on Jul 11, 2023. It is now read-only.

Commit

Permalink
Merge pull request #17 from cjsjy123/master
Browse files Browse the repository at this point in the history
more easy and more faster and less gc
  • Loading branch information
coding2233 authored Jul 29, 2018
2 parents 1e9016e + a6aacfb commit 8fb2a57
Show file tree
Hide file tree
Showing 40 changed files with 3,676 additions and 3,566 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,4 @@
*.csproj
*.sln
*.suo
/Assets/Plugins
Binary file modified Assets/Examples/Prefabs/ChatItem.prefab
Binary file not shown.
Binary file modified Assets/Examples/Prefabs/Text.prefab
Binary file not shown.
Binary file modified Assets/Examples/Resources/emoji.asset
Binary file not shown.
Binary file modified Assets/Examples/Resources/emoji_lxh.asset
Binary file not shown.
Binary file added Assets/Examples/Scene/.DS_Store
Binary file not shown.
Binary file modified Assets/Examples/Scene/Chat.unity
Binary file not shown.
Binary file modified Assets/Examples/Scene/Text.unity
Binary file not shown.
69 changes: 35 additions & 34 deletions Assets/Examples/Scripts/ChatTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,38 +12,39 @@
using UnityEngine.UI;
using EmojiUI;

public class ChatTest : MonoBehaviour {

[SerializeField]
private GameObject _PreChatItem;
[SerializeField]
private RectTransform _ChatParent;
[SerializeField]
private RectTransform _ViewContent;
[SerializeField]
private InputField _InputText;

public int testcnt;

#region 点击发送
public void OnClickSend()
{
string _chatString = _InputText.text;
if (string.IsNullOrEmpty(_chatString))
return;

for(int i =0;i < testcnt;++i)
{
GameObject _chatClone = Instantiate(_PreChatItem);
_chatClone.transform.SetParent(_ChatParent);

InlineText _chatText = _chatClone.GetComponentInChildren<InlineText>();
if (_chatText != null)
{
_chatText.text = _chatString;
}
}

}
#endregion
public class ChatTest : MonoBehaviour
{

[SerializeField]
private GameObject _PreChatItem;
[SerializeField]
private RectTransform _ChatParent;
[SerializeField]
private RectTransform _ViewContent;
[SerializeField]
private InputField _InputText;

public int testcnt;

#region 点击发送
public void OnClickSend()
{
string _chatString = _InputText.text;
if (string.IsNullOrEmpty(_chatString))
return;

for (int i = 0; i < testcnt; ++i)
{
GameObject _chatClone = Instantiate(_PreChatItem);
_chatClone.transform.SetParent(_ChatParent);

InlineText _chatText = _chatClone.GetComponentInChildren<InlineText>();
if (_chatText != null)
{
_chatText.text = _chatString;
}
}

}
#endregion
}
77 changes: 39 additions & 38 deletions Assets/Examples/Scripts/ClickTest.cs
Original file line number Diff line number Diff line change
@@ -1,38 +1,39 @@
/// ========================================================
/// file:ClickTest.cs
/// brief:
/// author: coding2233
/// date:
/// version:v1.0
/// ========================================================

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using EmojiUI;

public class ClickTest : MonoBehaviour {

private InlineText _text;

void Awake()
{
_text = GetComponent<InlineText>();
}

void OnEnable()
{
_text.OnHrefClick.AddListener(OnHrefClick);
}

void OnDisable()
{
_text.OnHrefClick.RemoveListener(OnHrefClick);
}

private void OnHrefClick(string hrefName,int id)
{
Debug.Log("点击了 " + hrefName+" id:"+id);
// Application.OpenURL("www.baidu.com");
}
}
/// ========================================================
/// file:ClickTest.cs
/// brief:
/// author: coding2233
/// date:
/// version:v1.0
/// ========================================================

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using EmojiUI;

public class ClickTest : MonoBehaviour
{

private InlineText _text;

void Awake()
{
_text = GetComponent<InlineText>();
}

void OnEnable()
{

}

void OnDisable()
{

}

private void OnHrefClick(string hrefName, int id)
{
Debug.Log("点击了 " + hrefName + " id:" + id);
// Application.OpenURL("www.baidu.com");
}
}
9 changes: 9 additions & 0 deletions Assets/Plugins.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified Assets/TextInlineSprite/.DS_Store
Binary file not shown.
23 changes: 23 additions & 0 deletions Assets/TextInlineSprite/Editor/AutoSetInlineOrder.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
[InitializeOnLoad]
public class AutoSetInlineOrder : MonoBehaviour {


#if UNITY_EDITOR
static AutoSetInlineOrder()
{

foreach (MonoScript monoScript in MonoImporter.GetAllRuntimeMonoScripts())
{
if (monoScript.name == "InlineManager")
{
if(MonoImporter.GetExecutionOrder(monoScript) != 10)
MonoImporter.SetExecutionOrder(monoScript, 10);
}
}
}
#endif
}
12 changes: 12 additions & 0 deletions Assets/TextInlineSprite/Editor/AutoSetInlineOrder.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

166 changes: 83 additions & 83 deletions Assets/TextInlineSprite/Editor/InlineManagerEditor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,46 +3,46 @@
using UnityEngine;
using UnityEditor;

namespace EmojiUI
{
[CustomEditor(typeof(InlineManager),true)]
[CanEditMultipleObjects]
public class InlineManagerEditor : Editor
{
SerializedProperty m_Script;

private bool foldout =true;

private Dictionary<string, SpriteAsset> assetDic = new Dictionary<string, SpriteAsset>();

protected virtual void OnEnable()
{
m_Script = serializedObject.FindProperty("m_Script");
}

public override void OnInspectorGUI()
{
InlineManager manager = target as InlineManager;
EditorGUILayout.PropertyField(m_Script);

EditorGUILayout.Space();
serializedObject.Update();
namespace EmojiUI
{
[CustomEditor(typeof(InlineManager),true)]
[CanEditMultipleObjects]
public class InlineManagerEditor : Editor
{
SerializedProperty m_Script;

private bool foldout =true;

private Dictionary<string, SpriteAsset> assetDic = new Dictionary<string, SpriteAsset>();

protected virtual void OnEnable()
{
m_Script = serializedObject.FindProperty("m_Script");
}

public override void OnInspectorGUI()
{
InlineManager manager = target as InlineManager;
EditorGUILayout.PropertyField(m_Script);

EditorGUILayout.Space();
serializedObject.Update();

manager.OpenDebug =EditorGUILayout.Toggle("Debug", manager.OpenDebug);
manager.renderType = (EmojiRenderType)EditorGUILayout.EnumPopup("Rendetype", manager.renderType);
manager.AnimationSpeed = EditorGUILayout.Slider("AnimationSpeed", manager.AnimationSpeed, 0, 100);

foldout = EditorGUILayout.Foldout(foldout, "prepared:"+manager.PreparedAtlas.Count);
if(foldout)
{
EditorGUI.indentLevel++;
for (int i =0; i < manager.PreparedAtlas.Count;++i)
{
string resName = manager.PreparedAtlas[i];
SpriteAsset asset = null;
if(!string.IsNullOrEmpty(resName))
{
if (!assetDic.ContainsKey(resName))
manager.RenderType = (EmojiRenderType)EditorGUILayout.EnumPopup("Rendetype", manager.RenderType);
manager.AnimationSpeed = EditorGUILayout.Slider("AnimationSpeed", manager.AnimationSpeed, 0, 100);

foldout = EditorGUILayout.Foldout(foldout, "prepared:"+manager.PreparedAtlas.Count);
if(foldout)
{
EditorGUI.indentLevel++;
for (int i =0; i < manager.PreparedAtlas.Count;++i)
{
string resName = manager.PreparedAtlas[i];
SpriteAsset asset = null;
if(!string.IsNullOrEmpty(resName))
{
if (!assetDic.ContainsKey(resName))
{

string fixname = System.IO.Path.GetFileNameWithoutExtension(resName);
Expand All @@ -56,51 +56,51 @@ public override void OnInspectorGUI()
asset = assetDic[resName] = AssetDatabase.LoadAssetAtPath<SpriteAsset>(path);
break;
}
}
}
else
{
asset = assetDic[resName];
}
}

SpriteAsset newasset = (SpriteAsset)EditorGUILayout.ObjectField(i.ToString(), asset, typeof(SpriteAsset),false);
if(newasset != asset)
{
if(newasset == null)
{
manager.PreparedAtlas[i] = "";
}
else
{
manager.PreparedAtlas[i] = System.IO.Path.GetFileNameWithoutExtension(AssetDatabase.GetAssetPath(newasset));
assetDic[manager.PreparedAtlas[i]] = newasset;
}
EditorUtility.SetDirty(manager);
}

}

EditorGUI.indentLevel--;

EditorGUILayout.BeginHorizontal();

if(GUILayout.Button("add",GUILayout.Width(100)))
{
manager.PreparedAtlas.Add("");
}

if (GUILayout.Button("remove", GUILayout.Width(100)))
{
if (manager.PreparedAtlas.Count > 0)
manager.PreparedAtlas.RemoveAt(manager.PreparedAtlas.Count - 1);
}
EditorGUILayout.EndHorizontal();
}

serializedObject.ApplyModifiedProperties();
}
}
}
}
else
{
asset = assetDic[resName];
}
}

SpriteAsset newasset = (SpriteAsset)EditorGUILayout.ObjectField(i.ToString(), asset, typeof(SpriteAsset),false);
if(newasset != asset)
{
if(newasset == null)
{
manager.PreparedAtlas[i] = "";
}
else
{
manager.PreparedAtlas[i] = System.IO.Path.GetFileNameWithoutExtension(AssetDatabase.GetAssetPath(newasset));
assetDic[manager.PreparedAtlas[i]] = newasset;
}
EditorUtility.SetDirty(manager);
}

}

EditorGUI.indentLevel--;

EditorGUILayout.BeginHorizontal();

if(GUILayout.Button("add",GUILayout.Width(100)))
{
manager.PreparedAtlas.Add("");
}

if (GUILayout.Button("remove", GUILayout.Width(100)))
{
if (manager.PreparedAtlas.Count > 0)
manager.PreparedAtlas.RemoveAt(manager.PreparedAtlas.Count - 1);
}
EditorGUILayout.EndHorizontal();
}

serializedObject.ApplyModifiedProperties();
}
}
}


Loading

0 comments on commit 8fb2a57

Please sign in to comment.