Jump to content

[SOLVED] how can update the camera frist position(vec3) in unigine resource code.


photo

Recommended Posts

I did it in a function for updating the camera position.

function code:

bool Globe::setPosition(vec3& v3)

{

Player* player = engine.editor->getPlayer();

Mat4 transform = player->getWorldTransform();

transform.setColumn3(3,v3);

player->setWorldTransform(transform);

return true;

}

the function is do.and return position is ok.but do this code .the camera postion is vec3(0,0,0).

Unigine::Engine *engine_new = Unigine::Engine::init(UNIGINE_VERSION,argc,argv);

setPosition(v3);

while(engine_new->isDone() == 0)

{

//here position is ok.

engine_new->update();

//here position is return (0,0,0);why?

engine_new->render();

engine_new->swap();

}

 

why can set the camera frist position in uniginescript init() function.but i can not set in unigine resource code.

 

PlayerSpectator player = new PlayerSpectator();

player.setPosition(vec3(-3.5,0.0,1.3));

 

where code update ???

Link to comment

When the engine is updated, the editor is updated as well. At the start the editor automatically sets the player's position based on its initial position in the world. So positioning a player in the world in a proper point will do the trick for you.

Link to comment
When the engine is updated, the editor is updated as well. At the start the editor automatically sets the player's position based on its initial position in the world. So positioning a player in the world in a proper point will do the trick for you.

 

Sorry,I can't find to set the camera first position in resouce code. particular code file? thanks!

Link to comment
Set game player position within your world script unit() function

 

I run the program in unigine_vc2010 project for updating resource code.not in uniginescript.

worldInterpreter.cpp:

 

node->addFunction("setPosition",node_set_position);

 

static void node_set_position(Node *node,const Vec3 &position) {

Mat4 transform = node->getTransform();

transform.setColumn3(3,position);

node->setTransform(transform);

}

 

this function is not set the camera position???

Link to comment
  • 2 weeks later...
  • 5 weeks later...

bool Globe::setPosition(vec3& v3)

{

 

Player* player = engine.editor->getPlayer();

//cameraPlayer = new PlayerSpectator();

Mat4 transform = player->getWorldTransform();

transform.m00 = -0.996779;

transform.m01 = -0.0374037;

transform.m02 = 0.0709425;

transform.m10 = 0.080199;

transform.m11 = -0.464884;

transform.m12 = 0.881732;

transform.m20 = 4.76964e-009;

transform.m21 = 0.884581;

transform.m22 = 0.466386;

 

transform.setColumn3(3,v3);

player->setWorldTransform(transform);

if(engine.game)

{

engine.game->setPlayer(player);

}

return true;

}

 

 

this function code can work ok and can set the frist position.but input "editor_quit" in command console for exiting editor model ,display error,null pointer address. why???

Link to comment
×
×
  • Create New...