andyhebear1
15-03-2012 02:42:50
err:Attempted to read or write protected memory. This is often an indication that other memory corrupted
in Mogre.SceneManager.CreateEntity(String entityName, String meshName)
the src:
the mesh is has
when i create the entity many time will throw this error
now this problem is solved: do destory scenenode and entity before,must DetachObject entity from this entity parentscenenode
and there cann't has same name mesh in 2 different resource group
in Mogre.SceneManager.CreateEntity(String entityName, String meshName)
the src:
if (part.Render.RenderScene.HasSceneNode(part.ID + "_Node")) {
part.Render.RenderScene.DestroySceneNode(part.ID + "_Node");
}
part.Render.RenderNode = part.Render.RenderScene.CreateSceneNode(part.ID + "_Node");
part.Render.RenderScene.RootSceneNode.AddChild(part.Render.RenderNode);
Entity _rob = null;
if (part.Render.RenderScene.HasEntity((part.ID + "_Entity" + i.ToString()))) {
part.Render.RenderScene.DestroyEntity((part.ID + "_Entity" + i.ToString()));
}
try {
_rob = part.Render.RenderScene.CreateEntity(part.ID + "_Entity" + i.ToString(), strName);//???
}
catch (Exception ex) {
try {
DebugLog.Log("创建实体出错 " + strName, ex, true);
Mogre.MeshManager.Singleton.Unload(strName);
Mogre.MeshManager.Singleton.Remove(strName);
Mogre.MeshManager.Singleton.Load(strName, "IRobotQ");
DebugLog.Log("重新加载模型 " + strName);
_rob = part.Render.RenderScene.CreateEntity(part.ID + "_Entity" + i.ToString(), strName);//???
}
catch (Exception ee) {
DebugLog.Log("无法创建实体 " + strName, ex, true);
throw new Exception("无法创建实体", ee);
}
}
the mesh is has
when i create the entity many time will throw this error
now this problem is solved: do destory scenenode and entity before,must DetachObject entity from this entity parentscenenode
and there cann't has same name mesh in 2 different resource group
if (entity.ParentSceneNode != null && (IntPtr)entity.ParentSceneNode.NativePtr != IntPtr.Zero) {
entity.ParentSceneNode.DetachObject(entity);
}