Sprint 5 – ‘The Hangover’

For the past sprint we have been building out the environment around the apartment and looking at a few assets to add detail to our game. Below you can see some of the building exterior created for around our apartment.

IMG_1567

Using Probuilder we have been able to quickly create buildings to put in our environment to create a nice landscape if looking outside the apartment. Below we are making an apartment building from our street in Washington, this took about 45 minutes to complete.

IMG_1566

Check out the time lapse of this process on our Instagram: Building – Time Lapse

We have been trying out a new third person control called Ultimate Third Person. It seems to be pretty powerful and the best bit is, it is really smooth. Here we are integrating this code into our main build, including opening a door function.

The last thing we have been doing is building a NPC Script. Starting off with a basic tutorial we then enhanced that script to have both a patrol function. Where the NPC patrols between set way-points. A pursue function, where the NPC starts following the character when you come into range. Once leaving that range the NPC returns to patrolling. Lastly a stand still function, where if the NPC gets close enough to the character it standstills, thus ready for a conversation. You can see the NPC here patrolling.

img_1565.jpg

The complete script is below. NPC Patrol, Pursue, Standstill class:

 public class chase : MonoBehaviour {
public Transform player;
Animator anim;
string state = "patrol";
public GameObject[] waypoints;
int currentWP = 0;
float rotSpeed = 1f;
//float speed = 3f;
float accuracyWP = 2.0f;

// Use this for initialization
void Start ()
{
 anim = GetComponent ();
}
//patrol method
void Patrol(Vector3 direction)
{
if (Vector3.Distance (waypoints [currentWP].transform.position, transform.position) = waypoints.Length)
{
  currentWP = 0;
 }
}
direction = waypoints [currentWP].transform.position - transform.position;
this.transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation (direction), 0.1f);
this.transform.Translate (0, 0, 0.05f);
}

//pursue method
void Pursue(Vector3 direction)
{
this.transform.rotation = Quaternion.Slerp (this.transform.rotation, Quaternion.LookRotation (direction), 0.1f);
//Slerp makes a smooth turn

this.transform.Translate (0, 0, 0.05f);
anim.SetFloat ("Forward Input", 1f);

}

void Standstill()
{
 anim.SetFloat ("Forward Input", 0f);
}

// Update is called once per frame
void Update ()
{
Vector3 direction = player.position - this.transform.position;
//Works out the distance
direction.y = 0;
//stops them falling over on the Y axis
anim.SetFloat ("Forward Input", 1f);
//anim.SetFloat ("Forward Input", 1f);

//if to far away patrol, if close pursue
if (Vector3.Distance (player.position, this.transform.position) > 3) {
Patrol (direction);
}else if (Vector3.Distance (player.position, this.transform.position) < 1){
Standstill ();
}
else {
Pursue (direction);
  }
}
} 

Lastly want to say a big thank you to all our followers as we hit 1000 on Instagram!

Till next time.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s