1. 创建两个新的C# 代码脚本,一个名为NPC,另一个名为NPCEditor。并创建一个名为Editor的新文件夹并将NPCEditor脚本放入其中。如图1-1所示
2、NPC脚本的代码如图2-1所示
3、NPCEditor的脚本如下:
[csharp]查看纯文本
打印?
使用Unity引擎;
使用UnityEditor;
使用System.Collections;
[自定义编辑器(typeof(NPC))]
publicclassNPCEditor:Editor{
//声明脚本对象
私有序列化对象npc;
//声明属性值
私有序列化属性mynpc;
privatestaticboolfolds=false;
私人NPC目标
{获取{返回(NPC)目标;}}
//UI显示处理,任意数量数组的加减处理
私有静态GUI内容
insertContent=newGUIContent("+","duplicatethisnpc"),
deleteContent=newGUIContent("-","deletethnpc");
//限制按钮的宽度
privatestaticGUILayoutOption
按钮宽度=GUILayout.MaxWidth(20f);
voidOnEnable()
{
//给脚本对象和属性赋值
npc=newSerializedObject(目标);
mynpc=npc.FindProperty("mynpc");
}
publicoverridevoidOnInspectorGUI()
{
npc.Update();
EditorGUILayout.Space();
GUI.changed=false;
//创建NPC
folds=EditorGUILayout.BeginToggleGroup("创建NPC",folds);
如果(折叠)
{
EditorGUILayout.Space();
//保证对象数量为0时可以添加。
if(GUILayout.Button(insertContent,EditorStyles.miniButtonLeft,buttonWidth))
{
mynpc.arraySize=1;
}
//根据对象数组的长度,循环创建新的npc
为(inti=0;我
{
SerializedPropertynpc_s=mynpc.GetArrayElementAtIndex(i);
EditorGUILayout.BeginVertical();
EditorGUILayout.PropertyField(npc_s.FindPropertyRelative("id"));
EditorGUILayout.PropertyField(npc_s.FindPropertyRelative("name"));
EditorGUILayout.PropertyField(npc_s.FindPropertyRelative("pos_x"));
EditorGUILayout.PropertyField(npc_s.FindPropertyRelative("pos_y"));
EditorGUILayout.BeginHorizontal();
//增加
if(GUILayout.Button(insertContent,EditorStyles.miniButtonLeft,buttonWidth)){
mynpc.InsertArrayElementAtIndex(i);
}
//减少
if(GUILayout.Button(deleteContent,EditorStyles.miniButtonRight,buttonWidth)){
mynpc.DeleteArrayElementAtIndex(i);
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndVertical();
}
if(GUILayout.Button("更新"))
{
//这里可以编写处理数据的脚本
}
npc.ApplyModifiedProperties();
}
EditorGUILayout.EndToggleGroup();
}
}
文章分享结束,Unity编辑器中对象属性定制技巧解析和的答案你都知道了吗?欢迎再次光临本站哦!
【Unity编辑器中对象属性定制技巧解析】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
Unity 编辑器真是方便啊,编辑对象的属性一目了然!
有20位网友表示赞同!
对游戏玩法和视觉效果很重要的一点就是调整物件属性。
有16位网友表示赞同!
学了一点Unity,发现修改属性比想象中简单很多。
有14位网友表示赞同!
之前用别的软件觉得调属性很麻烦,Unity真棒!
有15位网友表示赞同!
想想以前一点一点手动改代码修改属性,现在简直轻松多了。
有12位网友表示赞同!
学习一个新的游戏引擎里,了解编辑器对对象属性的编辑确实挺关键的。
有18位网友表示赞同!
通过编辑器调整属性,可以创造出不同的游戏体验。
有13位网友表示赞同!
越来越觉得Unity的界面设计简洁明了,属性设置好方便!
有9位网友表示赞同!
看视频教程中,很多高手就是通过巧妙地调整属性来实现各种特效。
有16位网友表示赞同!
属性编辑功能对于细节的调整非常重要,让游戏更加逼真。
有15位网友表示赞同!
感觉Unity学习曲线还是比较陡峭的,因为属性设置那么多选择...
有6位网友表示赞同!
希望未来Unity的编辑器能够更加智能化,自动生成一些属性配置。
有8位网友表示赞同!
不同的游戏对象需要不同的属性设置,这挺考验设计思想的。
有5位网友表示赞同!
属性编辑器功能丰富,还能自定义脚本,非常强大!
有9位网友表示赞同!
学习Unity编辑器的同时,也要学习相关的编程知识才能更自由地操作属性。
有17位网友表示赞同!
发现很多游戏小细节都是通过属性设置来完成的,真佩服那些游戏开发者!
有16位网友表示赞同!
属性编辑功能是unity最让人折服的地方,可以做成任何你想做的东西!
有12位网友表示赞同!
还在学Unity,希望以后能轻松驾驭所有的属性设置。
有15位网友表示赞同!