描述
UI有限状态机,仿照Unity的动画系统做成的。
使用时只需要配置状态间和跳转条件、触发条件,每个状态的显示预置体、名称即可。
效果图
……继续阅读 »
sharezer
5年前 (2018-04-04) 2255浏览 1评论
2个赞
有两个类NodeGraph和StateNode,继承于ScriptableObject
现在将一个NodeGraph实例保存到Assets中
AssetDatabase.CreateAsset(curGraph, "Assets/Database/" + wantedName + ".asset");
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
然后再生成一些StateNode的实例,插到这个NodeGraph的实例中
curNode.name……继续阅读 »
sharezer
7年前 (2016-09-06) 11139浏览 0评论
0个赞
正在序列化一下List的默认样式如下:
public class TestScript : MonoBehaviour
{
public List<string> TestList = new List<string>();
void Start ()
{
}
void Update ()
{
}
}
手动控制大小,不方便排序与删除
UnityEditorInternal有ReorderableList这个类,可以用于列表的排序
新建一个自定义扩展脚本
……继续阅读 »
sharezer
7年前 (2016-08-29) 5204浏览 0评论
6个赞
//返回一个空白可用1x1白色纹理
static public Texture2D blankTexture
//返回一个可用的纹理,看起来像一个黑色的检查板
static public Texture2D backdropTexture
//返回一个可用的纹理,看起来像一个高对比度检查板
static public Texture2D contrastTexture
//用于标题栏/标题的梯度纹理
static public Texture2D gradientTexture
//创建一个白色的虚拟纹理
static Texture2D CreateDummyTex ()
//创建……继续阅读 »
sharezer
7年前 (2016-08-22) 2729浏览 0评论
0个赞
string str = "这是中文";
string msg = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(str));
msg = System.Text.RegularExpressions.Regex.Unescape(msg);
……继续阅读 »
sharezer
7年前 (2016-08-11) 2711浏览 0评论
0个赞
public static void GetNetWorkType()
{
if (Application.internetReachability == NetworkReachability.NotReachable)
{
Debug.Log("无网络");
}
else if (Application.internetReachability == NetworkReachability.ReachableViaCarrierDataNetwork)
{
Debug.Log("2G/3G……继续阅读 »
sharezer
7年前 (2016-08-05) 2015浏览 0评论
0个赞
// <summary>
/// 使用GZIP压缩文件的方法
/// </summary>
/// <param name="sourcefilename">源文件路径</param>
/// <param name="zipfilename">压缩文件路径</param>
/// <returns>返回bool操作结果,成功true,失败 flase</returns>
public static bool GZipFile(string sourcefil……继续阅读 »
sharezer
7年前 (2016-08-05) 3941浏览 0评论
3个赞
通过继承Unity5.3新加入的CustomYieldInstruction类,即可自定义协程
定义WaitForSecondsRealtime不受Time.timeScale影响
使用方法与WaitForSecond一样
public class WaitForSecondsRealtime : CustomYieldInstruction
{
private float waitTime;
public override bool keepWaiting
{
get { return Time.realtimeSinceStart……继续阅读 »
sharezer
7年前 (2016-07-27) 3478浏览 0评论
0个赞
Unity中的类,能过正常调用Type.GetType()得不到Type
可能通过程序集取得
Unity有运行时和编辑器时两个程序集,分别为:
Assembly-CSharp
Assembly-CSharp-Editor
通过Assembly.GetExecutingAssembly()获取包含当前执行的代码的程序集
//从当前执行的程序集中获取Type
public Type GetType(string TypeName)
{
return System.Reflection.Assembly.GetExecutingAssembly().GetType(TypeName);
……继续阅读 »
sharezer
7年前 (2016-07-26) 6719浏览 0评论
7个赞
using UnityEditor;
using UnityEngine;
public class 升序排列 : BaseHierarchySort
{
public override GUIContent content
{
get { return new GUIContent("升序"); }
}
public override int Compare(GameObject lhs, GameObject rhs)
{
if (lhs == rhs)……继续阅读 »
sharezer
7年前 (2016-07-26) 2812浏览 0评论
0个赞