// Start is called before the first frame update protected override void Start() { moveTypeSeek = new Seek(); moveTypeSeek.character = this; moveTypeSeek.target = target; moveTypeFlee = new Seek(); moveTypeFlee.flee = true; moveTypeFlee.character = this; moveTypeFlee.target = target; moveTypeEvade = new Evade(); moveTypeEvade.character = this; moveTypeEvade.target = target; moveTypeAvoid = new ObstacleAvoidance(); moveTypeAvoid.character = this; moveTypeAvoid.target = target; rotateTypeFace = new Face(); rotateTypeFace.character = this; rotateTypeFace.target = target; rotateTypeLWYG = new LookWhereYoureGoing(); rotateTypeLWYG.character = this; rotateTypeLWYG.target = target; }
// Start is called before the first frame update protected override void Start() { myRotateType = new LookWhereYoureGoing(); myRotateType.character = this; myRotateType.target = target; myMoveType = new Pursue(); myMoveType.character = this; myMoveType.target = target; }
// Start is called before the first frame update protected override void Start() { myRotateType = new LookWhereYoureGoing(); myRotateType.character = this; myRotateType.target = target; myMoveType = new Separation(); myMoveType.character = this; myMoveType.targets = targets; }
// Start is called before the first frame update void Start() { m_Rotate = new LookWhereYoureGoing(); m_Rotate.character = this; m_Rotate.target = target; m_Move = new FollowPath(); m_Move.character = this; m_Move.path = m_Path; m_Move.targetRadius = targetRadius; }
public void createLook(SteeringOutput steering) { LookWhereYoureGoing myAlign = new LookWhereYoureGoing { character = this, target = myTarget }; steering = myAlign.getSteering(); if (steering != null) { linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; } }
public static bool isButterfly; // if true, cost changes // Start is called before the first frame update void Start() { if (this.gameObject.tag == "butterfly") { isButterfly = true; } else { isButterfly = false; } Debug.Log(this.name + ", " + isButterfly); rotateType = new LookWhereYoureGoing(); rotateType.character = this; rotateType.target = target; m_Graph = new Graph(); m_Graph.Build(); List <Connection> path = Dijkstra.pathfind(m_Graph, start, end); // convert connections to gameobjects m_path = new GameObject[path.Count + 1]; int i = 0; foreach (Connection c in path) { Debug.Log("from " + c.getFromNode() + " to " + c.getToNode() + " @" + c.getCost()); m_path[i] = c.getFromNode().gameObject; i++; } m_path[i] = end.gameObject; moveType = new FollowPath(); moveType.character = this; moveType.path = m_path; }
// Update is called once per frame void Update() { myTarget = GameObject.Find("Player"); // update my position and rotation this.transform.position += linearVelocity * Time.deltaTime; Vector3 v = new Vector3(0, angularVelocity, 0); // TODO - don't make a new Vector3 every update you silly person this.transform.eulerAngles += v * Time.deltaTime; // update linear and angular velocities SteeringOutput steering = new SteeringOutput(); //TODO add switch statement for different move type (6 behaviours) if (flee) { Seek mySeek = new Seek { character = this, target = myTarget }; mySeek.flee = true; steering = mySeek.getSteering(); linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; } else if (seek) { Seek mySeek = new Seek { character = this, target = myTarget }; steering = mySeek.getSteering(); linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; } else if (arrive) { Arrive myArrive = new Arrive { character = this, target = myTarget }; steering = myArrive.getSteering(); if (steering != null) { linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; } else { linearVelocity = Vector3.zero; } } else if (face) { Face myAlign = new Face { character = this, target = myTarget }; steering = myAlign.getSteering(); if (steering != null) { linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; } } else if (look) { LookWhereYoureGoing myAlign = new LookWhereYoureGoing { character = this, target = myTarget }; steering = myAlign.getSteering(); if (steering != null) { linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; } } else if (align) { Align myAlign = new Align { character = this, target = myTarget }; steering = myAlign.getSteering(); if (steering != null) { linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; } } }
// Update is called once per frame void Update() { //update position and rotation transform.position += linearVelocity * Time.deltaTime; transform.eulerAngles += new Vector3(0, angularVelocity * Time.deltaTime, 0); //update linear and angular velocities switch (mode) { case 0: Seek mySeek = new Seek(); mySeek.character = this; mySeek.target = target; steering = mySeek.getSteering(); linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; Debug.Log("Seek"); break; case 1: Flee myFlee = new Flee(); myFlee.character = this; myFlee.target = target; steering = myFlee.getSteering(); linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; Debug.Log("Flee"); break; case 2: Arrive myArrive = new Arrive(); myArrive.character = this; myArrive.target = target; steering = myArrive.getSteering(); linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; Debug.Log("Arrive"); break; case 3: Align myAlign = new Align(); myAlign.character = this; myAlign.target = target; steering = myAlign.getSteering(); linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; Debug.Log("Align"); break; case 4: Face myFace = new Face(); myFace.character = this; myFace.target = target; steering = myFace.getSteering(); linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; Debug.Log("Face"); break; case 5: LookWhereYoureGoing myLook = new LookWhereYoureGoing(); myLook.character = this; myLook.target = target; steering = myLook.getSteering(); linearVelocity += steering.linear * Time.deltaTime; angularVelocity += steering.angular * Time.deltaTime; Debug.Log("Look"); break; } }