Esempio n. 1
0
 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;
     }
 }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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;
    }
Esempio n. 4
0
    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;
    }
Esempio n. 5
0
    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;
    }