学习日记#02
学习日机#02
Unity
InputField
- Character Limit :
- Content Type : 限制类型,控制输入内容,Standard即可
- Placeholder: 描述性字段
- Caret Blink Rate : 光标闪烁速度
- CustomCaret Color : 自定义光标颜色
- Caret Color : 光标颜色
- Selection Color :选中颜色
using UnityEngine.UI;
void Start () {
inputField= this.Getcomponent<InputField>
// 只要有输入就调用
inputField.onValueChanged.AddListener();
// 当离开输入环境时调用
inputField.onEndEdit();
}
Silder: 滑块
- Fill :填充
- Handle Slide Area : 滑动点
- Whole Numbers : 取整,gal音量等级
void Start () {
slider = this.GetComponent<Slider>;
slider.onValueChanged.AddListener();
}
Scrollbar : 滑动条
- Number Of Steps : 等分
Scroll View : 滚动视图
在组件内名称叫 Scroll Rect
- Horizontal,Vertical : 水平竖直限制
- Movement Type : 移动类型Elastic(回弹),Unrestricted(不回弹),Clamp(锁住)
- Elasticity :回弹力
- Deceleration Rate : 减速率,控制惯性
- Scroll Sensitivity : 滚轮可控制
- Content : 要滚动的内容放在其下面 GridLayoutGroup Content Size Fitter
- 布局组件 : GridLayoutGroup 锁住内部内容
- Cell Size 每个大小
- Spacing :间隔
- Constraint : 按行按列排序
- Content Size Fitter:自适应组件
寻路
有静态物体后,window->Navigation->Bake 烘焙地图
NavMeshAgent : 用NavMesh
- Agent Type :
- Base Offset :
- Steering
using UnityEngine.AI
private NavMeshAgent navMeshAgent;
void Start () {
endPoint = transform.position;
navMeshAgennt.SetDestination(endPoint);
}
动画系统
Animation Clip
Animation Controller
Animator Component
Avatar
Avatar : unity人形动画骨骼标准
- unity的替身系统,使得不同模型之间能够交流,规定了一套untiy自己的肌肉系统作为中间代理,要先翻译成Avatar,即两边复用
Animation Clip :
- .anim后缀的动画文件,用yaml语言存储了一系列的动画信息,可以记录节点名称,也就是骨骼系统的动画复用方法
UIFramework
- Grid Layout Grip :自动优化ui排列
- 注意锚点使用
Config:配置信息
json:
json里面的元素都是以键值对的形式存在
// 单个元素
{
"name" : "zhangsan",
"age" : 18,
"isBool" : false
}
// 数组对象
{
"role" : [
{
"rolename":"zhangsan",
"rolesex":"m"
},
{
"rolename":"lisi",
"rolesex":"w"
}
]
}
- 序列化: 将对象转换成二进制数据
- 反序列化 : 将二进制的数据转换为对象
- fromjson : 将json形象转换为对象
- tojson : 将对象转为json信息
读取json文件
using System
public enum UIPanelType{
...
}
[Serializable]
public class UIPanelInfo : ISerializationCallbackReceiver{
public UIPanelType uIPanelType;
public string rolename;
public string rolesex;
public void OnAfterDeserialize() {
uiPanelType = (UIPanelType)System.Enum.Parse(typeof(UIPanelInfo))
}
}
[Serializeable]
class UIPanelTypeJson {
public List<UIPanelInfo> role;
}
public class UIManager {
public Dictionary<UIPanelType,string> uiPathDic;
private static UIManager instance;
public static UIManager Instance {
get {
if (null == instance) instance = new UIManager;
return instance;
}
}
private UIManager() {
ParseJson();
}
void ParseJson() {
TextAsset textAsset = Resources.Load<TextAsset>("Config/UIPanelType");
UIPanelTypeJson uiPanelType = JsonUtility.FromJson<UIPanelTypeJson>(textAsset.text);
foreach (var item in uiPanelType.role) {
Debug.Log($"{item.rolesex} {item.rolename}");
}
}
}