2015-11-23 119 views
1

我有我想要更新和渲染的实体列表。对于更新:矢量丢失mat4信息

变量:

std::vector<Entity> entityList; 

功能:

void EntityController::update(){ 
    for(Entity e : entityList){   
     e.update(); 
    } 
} 

,并为实体

void Entity::update(){ 

glm::mat4 trans = glm::mat4(); 
trans = glm::translate(trans, glm::vec3(50.0f,0.0f,50.0f)); 
trans = glm::scale(trans, glm::vec3(21.0,21.0,21.0)); 

modelMatrix = trans; 
} 

我的问题在这里是更新的功能,该模型矩阵的实际工作。只要我在类实体中,我可以在查看它时查看所有信息(调试模式XCode)。

但是当我离开这个类时,模型矩阵中的信息再次是单位矩阵。不知何故,他不保存,或更新的信息:S

+1

的最可能的原因是您正在修改副本,而不是原始对象。 –

+0

实体的副本? – DomiDiDongo

+0

这是我的猜测。如果您可以发布[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)会更好。 –

回答

2

update()荷兰国际集团Entity副本与电流范围for

for(Entity e : entityList) 
     ^huh? 

你可能想引用:

for(Entity& e : entityList) 
     ^important 
+0

谢谢,不知道:S – DomiDiDongo