编辑器开发基础介绍+编辑器检视面板简单扩展1
Unity热更新
热更新(游戏流程)
应用商店下载游戏
点击图标,运行游戏
*游戏更新中
资源解压中,请不要关闭
更新下载中,更新解压中,更新成功
游戏界面
插件了解
DOTween:UI动画
NGUI:场景UI制作
PlayMaker:图形化编写游戏逻辑工具
查看dll内部代码
百度:C# dll 反编译
什么是编辑器开发
对编辑器实现功能扩展,一般会使用它开发项目工具或实现Unity插件
C#特性
[System.Serializable]
用于在C#运行时,传递程序中各种元素(类,结构体,变量,方法,枚举,组件)的行为信息的声明标签。一个声明标签是通过放置在它所在应用元素的前面的方括号“[]”中来描述。
特殊目录
回顾
Plugins:需要跨语言调用的代码逻辑代码存储目录,手机SDK接入
Resources:存储跟随游戏包的资源目录
StreamingAssets:只读,存储跟随游戏包的资源目录
编辑器目录:Editor
制作多目录合并
例:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MultiResource : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Object cube = Resources.Load("Cube");
GameObject obj1=Instantiate(cube) as GameObject;
Object sphere = Resources.Load("Sphere");
GameObject obj2 = Instantiate(sphere) as GameObject;
}
}
项目中建立的Editor目录,编辑器相关的逻辑和资源会放在其内部,相关内容,在打包生成时,不会一起生成到项目中,玩家也不会使用到编辑器相关的内容。Editor目录下的脚本,无法挂载在场景对象下。
命名空间
Unity代码逻辑命名空间:UnityEngine
Unity编辑器命名空间:UnityEditor,此命名空间,不要出现在游戏被发布的逻辑代码中,会导致项目打包失败!
常见检视面板设置:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//对象如果不标记为可序列化,则Unity在存储的时候,会认为他不可被序列化,那么也就无法被显示
//Unity的内置Json工具运行原理与之类似
[System.Serializable]
public class Numerical
{
public int Atk;
public int Def;
}
public class SimpleInspector : MonoBehaviour
{
//隐藏公共成员变量,防止Inspector的值影响到它
//同时保证脚本中变量的可访问度
[HideInInspector]
public int ID = 99;
//私有变量,检视面板可见
//Unity会将对象进行序列化存储,所以即使是私有的,那么标记为可序列化后,
//就会显示,公有默认可序列化
[SerializeField]
private string Name;
//检视面板显示对象
public Numerical Num;
//把当前成员变量上方留50像素空白区域
[Space(50)]
//当前成员变量上方加入一个标题文字
[Header("年龄")]
//添加变量悬浮提示文字
//一个成员变量可以添加多个特性
[Tooltip("不要填写大于150岁的年龄")]
//给数值设定范围(最小0,最大150)
[Range(0,150)]
public int age;
//指定输入框,拥有5行
[Multiline(5)]
public string NickName;
//默认显示5行,最多显示10行内容,再多用混动条控制显示区域
[TextArea(5,10)]
public string Description;
public Texture Tex;
public Color Flag;
public List<string> Tags;
}
在Inspector面板的显示情况如图:
该系列专栏为网课课程笔记,仅用于学习参考。