Tuesday 30 April 2013

spawn point script and tutiorial



  1. public GameObject[] spawnPoints;
  2.  
  3. void OnCollisionEnter(Collision collision) {
  4. if (collision.collider.tag == "Respawn"){
  5. ArrayList respawnList = RespawnAtNearestPoint(transform.position);
  6. Vector3 respawnSpot = (Vector3) respawnList[0];
  7. transform.position = respawnSpot;
  8. Quaternion respawnRotation = (Quaternion) respawnList[1];
  9. transform.rotation = respawnRotation;
  10. rigidbody.velocity = Vector3.zero;
  11. rigidbody.angularVelocity = Vector3.zero;
  12. }
  13. }
  14.  
  15. ArrayList RespawnAtNearestPoint(Vector3 curPos){
  16. ArrayList respawnList = new ArrayList();
  17. Transform closestPoint = spawnPoints[0].transform;
  18. float shortestDistance = Vector3.Distance(curPos, closestPoint.position);
  19. foreach(GameObject point in spawnPoints){
  20. float curDist = Vector3.Distance(curPos, point.transform.position);
  21. if(shortestDistance > curDist){
  22. shortestDistance = curDist;
  23. closestPoint = point.transform;
  24. }
  25. }
  26. respawnList.Add(closestPoint.position);
  27. respawnList.Add(closestPoint.rotation);
  28. return respawnList;
  29.  

No comments:

Post a Comment