protected virtual void GreateGizmo(GameObject go, Type type)
        {
            Tuple <Mesh, Material> tuple;

            if (m_typeToMeshAndMaterial.TryGetValue(type, out tuple))
            {
                SpriteGizmo gizmo = go.GetComponent <SpriteGizmo>();
                if (!gizmo)
                {
                    gizmo = go.AddComponent <SpriteGizmo>();
                }

                gizmo.Mesh = tuple.Item1;
                m_meshesCache.Add(gizmo.Mesh, gizmo.transform);
                m_meshesCache.SetMaterial(tuple.Item1, tuple.Item2);
            }
        }