void Update() { if (isInitialized && !waiting && !isGrabbed && !stunned && !dead) { if (!charNav.pathPending) { if (charNav.remainingDistance <= charNav.stoppingDistance) { if (charNav.hasPath || charNav.velocity.sqrMagnitude == 0f) { if (positionIndex == 0) { StartCoroutine(WaitAtPlaza()); } else { positionIndex = CharPathController.GetNextSpotIndex(positionIndex); charNav.SetDestination(CharPathController.GetNextSpotVector(positionIndex)); anims.Walk(); } } } } } if (transform.position.y > maxheight) { maxheight = transform.position.y; } }
public void SpawnStickFigure() { int spawnIndex = CharPathController.GetRandomSpotIndex(); Vector3 spawnPos = CharPathController.GetNextSpotVector(spawnIndex); GameObject stickFig = Instantiate(stickFigurePrefab, spawnPos, Quaternion.identity) as GameObject; stickFig.transform.Find("basic_rig/basic_rig Pelvis").GetComponent <CharBody> ().Initialize(spawnIndex); }
public void Initialize(int beginningPosIndex) { rigOrigPos = pelvis.position - transform.position; // anims = GetComponent<CharAnimations>(); // charNav = GetComponent<NavMeshAgent> (); positionIndex = CharPathController.GetNextSpotIndex(beginningPosIndex); charNav.SetDestination(CharPathController.GetNextSpotVector(positionIndex)); anims.Walk(); maxheight = 0; isInitialized = true; }
IEnumerator WaitAtPlaza() { anims.Idle(); waiting = true; yield return(new WaitForSeconds(5f)); if (!isGrabbed && !dead && !stunned) { positionIndex = CharPathController.GetNextSpotIndex(positionIndex); charNav.SetDestination(CharPathController.GetNextSpotVector(positionIndex)); anims.Walk(); } waiting = false; }
IEnumerator Stun() { stunned = true; yield return(new WaitForSeconds(Random.Range(0.75f * stunTime, 1.5f * stunTime))); if (dead || isGrabbed) { yield break; } transform.position += new Vector3(pelvis.position.x - transform.position.x, 0f, pelvis.position.z - transform.position.z); pelvis.position = rigOrigPos; charNav.enabled = true; if (charNav.isOnNavMesh) { positionIndex = CharPathController.GetNextSpotIndex(positionIndex); charNav.SetDestination(CharPathController.GetNextSpotVector(positionIndex)); anims.Walk(); } else { Die(DeathType.Fall); } stunned = false; }