一.编写一个简单的鼠标打飞碟(Hit UFO)游戏
详情见博客Unity3d–飞碟游戏
二.编写一个简单的自定义 Component
用自定义组件定义几种飞碟,做成预制
参考官方脚本手册 https://docs.unity3d.com/ScriptReference/Editor.html
实现自定义组件,编辑并赋予飞碟一些属性
首先写好飞碟属性得嘞DiskData并挂载到飞碟预设上,接着我们可以通过DiskEditor类来对飞碟的属性再Inspector上进行编辑,这就是自定义组件的作用。可以在游戏之中在Inspector界面对飞碟的大小颜色分数等进行编辑。首先是OnEnable()我们可以获得飞碟的三个属性。重点在于OnSceneGUI()的编写,它为特定的脚本或者对象编写自定义的界面。我们对分数进行滑动条的设置,然后显示大小和颜色的数值进行调整,最后将更改应用就完成了编写一个自定义组件。
using UnityEngine;
using UnityEditor;
using System.Collections;
[CustomEditor(typeof(DiskData))]
[CanEditMultipleObjects]
public class DiskEditor : Editor
{
SerializedProperty score;
SerializedProperty color;
SerializedProperty scale;
void OnEnable()
{
score = serializedObject.FindProperty("score");
color = serializedObject.FindProperty("color");
scale = serializedObject.FindProperty("scale");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorGUILayout.IntSlider(score, 0, 5, new GUIContent("score"));
EditorGUILayout.PropertyField(color);
EditorGUILayout.PropertyField(scale);
serializedObject.ApplyModifiedProperties();
}
}
最终效果: