0
\$\begingroup\$

I mean i want to bake all the places in the space station and make the soldier to move automatic around the spaceship to random places.

What i did so far is placing the soldier at a start point. Added a camera as child to the soldier. Added a nav mesh agent component to the soldier.

Attached a script to the soldier: It's not my script. I don't want the soldier for now to chase only to walk randomly around the space station.

I didn't change any of the setting on the Nav Mesh Agent component in the inspector and i didn't

Should i change anything in the nav mesh agent component and if so what ?

How do select or set what areas to bake so the character will know to walk to this areas or if i want to select all the areas ?

How do i tell the character when to turn right or left in case there is a wall ? Could be also random to turn left or right. Depending if there is left and right ways or maybe there is also straight way so that's 3 possible ways to move to.

clicked the Bake button yet.

Soldier

I didn't write yet the script.

using UnityEngine;
using System.Collections;

public class SoldiersPatrol : MonoBehaviour
{

}
\$\endgroup\$
2
  • \$\begingroup\$ I noticed now that when i click the Navigation window and then Object and All i see a message: Select a MeshRenderer or a Terrain from the scene. But i don't have a terrain the space station is a object. And mesh renderers there are many a lot. So what do i do in this case ? I can't click the Bake button it does nothing. \$\endgroup\$
    – Daniel Lip
    Oct 9, 2017 at 23:59
  • \$\begingroup\$ I also saw in the unity tutorial that i should set a target where the agent the character should go to. But i want the character to walk random aorund the space station. Do i need then to add random targets around the station ? \$\endgroup\$
    – Daniel Lip
    Oct 10, 2017 at 0:01

1 Answer 1

0
\$\begingroup\$

I show you with like a psudo code:

system.random rnd = new system.random();
GameObject[]  points;
// assume you have 5 possible points that you can go
int moveIndex;
void update()
{

transform.position= vector3.movetowards(transform.position,points[moveIndex].transform.position,speed);
if(vector3.distance(transform.position,points[moveIndex].transform.position)<1)
{
moveIndex= rnd.next(1,6);
}

}
\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .