//public Vector2 AvoidObstacles()
        //{
        //    if (sensers == null)
        //    {
        //        sensers = new List<TankSensor>(m_transform.GetComponentsInChildren<TankSensor>());
        //    }
        //    if (sensers == null)
        //        return Vector2.zero;

        //    List<float> senserLens = new List<float>();
        //    foreach (var senser in sensers)
        //    {
        //        senserLens.Add(senser.CurrentLength);
        //    }
        //    if (senserLens[0] < senserLens[2])
        //    {
        //        return m_transform.right * Time.deltaTime;
        //    }
        //    else if (senserLens[0] > senserLens[2])
        //    {
        //        return -m_transform.right * Time.deltaTime;
        //    }
        //    return Vector2.zero;
        //}

        /// <summary>
        /// 徘徊
        /// </summary>
        /// <returns></returns>
        Vector2 Wander()
        {
            wandarTarget += new Vector2(AiTools.RandomClamped() * wandarJitter, AiTools.RandomClamped() * wandarJitter);
            wandarTarget  = wandarTarget.normalized * wandarRadius;
            Vector2 targetLocal = wandarTarget + Vector2.right * wandarDistance;
            Vector2 targetWorld = m_transform.TransformPoint(targetLocal);

            return(targetWorld - m_entity.Position);
        }
Exemple #2
0
 void Update()
 {
     if (CanMove)
     {
         //if (Input.GetMouseButton(0))
         //{
         Vector2 newVel = _steering.Calculate(AiTools.GetMousePosition());
         UpdateTank(newVel);
         //}
     }
 }