コード例 #1
0
 private void SetState(KidRunnerAI.KidState state)
 {
     if (this.m_KidState == state)
     {
         return;
     }
     this.m_KidState = state;
 }
コード例 #2
0
 private void UpdateActions()
 {
     KidRunnerAI.KidState kidState = this.m_KidRunner.m_KidState;
     if (kidState != KidRunnerAI.KidState.Run)
     {
         if (kidState - KidRunnerAI.KidState.Play <= 1 && this.m_CurrentAction == this.m_MoveTo)
         {
             base.StartAction(this.m_StartPlay);
             return;
         }
     }
     else if (this.m_CurrentAction == this.m_PlayIdle)
     {
         base.StartAction(this.m_MoveTo);
     }
 }
コード例 #3
0
        private void PlaySound()
        {
            AudioClip audioClip = null;

            while (audioClip == null || audioClip == this.m_LastClip)
            {
                KidRunnerAI.KidState kidState = this.m_KidRunner.m_KidState;
                if (kidState != KidRunnerAI.KidState.Run)
                {
                    if (kidState == KidRunnerAI.KidState.Play)
                    {
                        audioClip = this.m_IdleClips[UnityEngine.Random.Range(0, this.m_IdleClips.Count)];
                    }
                }
                else
                {
                    audioClip = this.m_RunClips[UnityEngine.Random.Range(0, this.m_RunClips.Count)];
                }
            }
            this.m_AudioSource.PlayOneShot(audioClip);
            this.m_SoundInterval = UnityEngine.Random.Range(1f, 2f);
            this.m_LastClip      = audioClip;
        }
コード例 #4
0
        protected override void Update()
        {
            base.Update();
            float num = Player.Get().transform.position.Distance(base.transform.position);

            KidRunnerAI.KidState kidState = this.m_KidState;
            if (kidState != KidRunnerAI.KidState.Run)
            {
                if (kidState != KidRunnerAI.KidState.Play)
                {
                    return;
                }
                if (num < this.m_PlayStateDistance - 2f)
                {
                    this.SetState(KidRunnerAI.KidState.Run);
                }
            }
            else
            {
                this.UpdateCurrentPathPoint();
                this.UpdateCurrentTarget();
                if (this.m_PathPointIndex >= this.m_Path.Count - 1)
                {
                    float num2 = 0f;
                    CJTools.Math.ProjectPointOnSegment(this.m_Path[this.m_PathPointIndex - 1].position, this.m_Path[this.m_PathPointIndex].position, base.transform.position, out num2);
                    if (num2 >= 0.99f)
                    {
                        this.SetState(KidRunnerAI.KidState.Finish);
                    }
                }
                if (num >= this.m_PlayStateDistance)
                {
                    this.SetState(KidRunnerAI.KidState.Play);
                    return;
                }
            }
        }