I have an arrow above Player's head to guide him to the exit of level. There are 13 waypoints to avoid arrow looking in only one direction. Also arrow has a script to collide with waypoints and switch to next waypoint. I'm wondering if there is some other way to write these functions, because this is veeeery long... Maybe you have some ideas to make it more simple.
Thanks!
using UnityEngine;
using System.Collections;
public class arrowScript : MonoBehaviour {
public bool wp2 = true;
public bool wp3 = false;
public bool wp4 = false;
public bool wp5 = false;
public bool wp6 = false;
public bool wp7 = false;
public bool wp8 = false;
public bool wp9 = false;
public bool wp10 = false;
public bool wp11 = false;
public bool wp12 = false;
public bool wp13 = false;
public Transform wayp2;
public Transform wayp3;
public Transform wayp4;
public Transform wayp5;
public Transform wayp6;
public Transform wayp7;
public Transform wayp8;
public Transform wayp9;
public Transform wayp10;
public Transform wayp11;
public Transform wayp12;
public Transform wayp13;
void OnTriggerEnter (Collider col)
{
if (col.tag == "wp1")
{
wp2 = true;
wp3 = false;
wp4 = false;
wp5 = false;
wp6 = false;
wp7 = false;
wp8 = false;
wp9 = false;
wp10 = false;
wp11 = false;
wp12 = false;
wp13 = false;
}
if (col.tag == "wp2")
{
wp2 = false;
wp3 = true;
wp4 = false;
wp5 = false;
wp6 = false;
wp7 = false;
wp8 = false;
wp9 = false;
wp10 = false;
wp11 = false;
wp12 = false;
wp13 = false;
}
if (col.tag == "wp3")
{
wp2 = false;
wp3 = false;
wp4 = true;
wp5 = false;
wp6 = false;
wp7 = false;
wp8 = false;
wp9 = false;
wp10 = false;
wp11 = false;
wp12 = false;
wp13 = false;
}
if (col.tag == "wp4")
{
wp2 = false;
wp3 = false;
wp4 = false;
wp5 = true;
wp6 = false;
wp7 = false;
wp8 = false;
wp9 = false;
wp10 = false;
wp11 = false;
wp12 = false;
wp13 = false;
}
if (col.tag == "wp5")
{
wp2 = false;
wp3 = false;
wp4 = false;
wp5 = false;
wp6 = true;
wp7 = false;
wp8 = false;
wp9 = false;
wp10 = false;
wp11 = false;
wp12 = false;
wp13 = false;
}
if (col.tag == "wp6")
{
wp2 = false;
wp3 = false;
wp4 = false;
wp5 = false;
wp6 = false;
wp7 = true;
wp8 = false;
wp9 = false;
wp10 = false;
wp11 = false;
wp12 = false;
wp13 = false;
}
if (col.tag == "wp7")
{
wp2 = false;
wp3 = false;
wp4 = false;
wp5 = false;
wp6 = false;
wp7 = false;
wp8 = true;
wp9 = false;
wp10 = false;
wp11 = false;
wp12 = false;
wp13 = false;
}
if (col.tag == "wp8")
{
wp2 = false;
wp3 = false;
wp4 = false;
wp5 = false;
wp6 = false;
wp7 = false;
wp8 = false;
wp9 = true;
wp10 = false;
wp11 = false;
wp12 = false;
wp13 = false;
}
if (col.tag == "wp9")
{
wp2 = false;
wp3 = false;
wp4 = false;
wp5 = false;
wp6 = false;
wp7 = false;
wp8 = false;
wp9 = false;
wp10 = false;
wp11 = false;
wp12 = false;
wp13 = true;
}
if (col.tag == "wp10")
{
wp2 = false;
wp3 = false;
wp4 = false;
wp5 = false;
wp6 = false;
wp7 = false;
wp8 = false;
wp9 = false;
wp10 = false;
wp11 = true;
wp12 = false;
wp13 = false;
}
if (col.tag == "wp11")
{
wp2 = false;
wp3 = false;
wp4 = false;
wp5 = false;
wp6 = false;
wp7 = false;
wp8 = false;
wp9 = false;
wp10 = false;
wp11 = false;
wp12 = true;
wp13 = false;
}
if (col.tag == "wp12")
{
wp2 = false;
wp3 = false;
wp4 = false;
wp5 = false;
wp6 = false;
wp7 = false;
wp8 = false;
wp9 = false;
wp10 = false;
wp11 = false;
wp12 = false;
wp13 = true;
}
}
void Update (){
if(wp2){
transform.LookAt(wayp2);
}
if(wp3){
transform.LookAt(wayp3);
}
if(wp4){
transform.LookAt(wayp4);
}
if(wp5){
transform.LookAt(wayp5);
}
if(wp6){
transform.LookAt(wayp6);
}
if(wp7){
transform.LookAt(wayp7);
}
if(wp8){
transform.LookAt(wayp8);
}
if(wp9){
transform.LookAt(wayp9);
}
if(wp10){
transform.LookAt(wayp10);
}
if(wp11){
transform.LookAt(wayp11);
}
if(wp12){
transform.LookAt(wayp12);
}
if(wp13){
transform.LookAt(wayp13);
}
}
}
I guess you can do this with a hashtable of some kind, but im kinda horrible at making those :/
– Kacer