/// <summary> /// 编辑生成调用 /// </summary> /// <param name="group">组</param> /// <param name="index">序号</param> /// <param name="pos">坐标</param> /// <param name="parent">父物体</param> protected override GameObject SpawnGizmo(int group, int index, Vector3 pos, Transform parent) { AbstractGizmoPointer abspoint = CheckChoise(group, index); GameObject gizmo = null; UserGizmoPointer userpointer = null; if (abspoint) { gizmo = abspoint.gameObject; userpointer = abspoint as UserGizmoPointer; } else { gizmo = GameObject.CreatePrimitive(PrimitiveType.Sphere); userpointer = gizmo.AddComponent <UserGizmoPointer>(); if (!pointmap.ContainsKey(group)) { pointmap.Add(group, new Dictionary <int, AbstractGizmoPointer>()); } if (!pointmap[group].ContainsKey(index)) { pointmap[group].Add(index, userpointer); } } gizmo.transform.SetParent(parent); userpointer.Init(group, index, Vector3.one * 3); gizmo.transform.position = pos; return(gizmo); }
/// <summary> /// 当下一编辑命令到来时检查上一个编辑的点状态 /// </summary> void CheckLastEdit(int group, int index) { AbstractGizmoPointer abspoint = CheckChoise(group, index); if (abspoint) { abspoint.EditDone(ReleaseGizmo); } }
/// <summary> /// 取消调用 /// </summary> void CancleGizmo() { AbstractGizmoPointer abspoint = CheckChoise(currentgroup, currentindex); if (abspoint) { abspoint.EditDone(ReleaseGizmo); } }
/// <summary> /// 保存调用 /// </summary> protected override void SaveGizmo() { AbstractGizmoPointer abspoint = CheckChoise(currentgroup, currentindex); if (abspoint) { abspoint.Saveme(); } }
protected override GameObject SpawnGizmo(int group, int index, Vector3 pos, Transform parent) { GameObject g = GameObject.CreatePrimitive(PrimitiveType.Sphere); g.transform.SetParent(transform, false); g.transform.localPosition = pos; float s = 0.3f / 0.1f; Vector3 finalscaler = Vector3.one * s; AbstractGizmoPointer p = null; p = g.AddComponent <NormalGizmoPointer>(); p.Init(group, index, finalscaler); Destroy(g.GetComponent <Collider>()); return(g); }
/// <summary> /// 释放该点 /// </summary> /// <param name="group">组</param> /// <param name="index">序号</param> public void ReleasePointe(int group, int index) { AbstractGizmoPointer p = CheckChoise(group, index); p.ReleseMe(); }