コード例 #1
0
    /// <summary>
    /// Start the enemy's basic movement logic
    /// inwave determines the movement speed and initial delay of this enemy;
    /// Short delays and higher movement speed = high difficulty
    /// </summary>
    /// <param name="inwave">Inwave.</param>
    public void BeginLogic(int inwave)
    {
        if (PathTraveller == null)
        {
            PathTraveller = GetComponent <RFPathTraveller>();
            PathTraveller.endpointCallback = ReachedEndpoint;
        }


        wave = inwave;
        float travelSpeedMult = 1.0f;

        for (int cnt = 1; cnt < wave; cnt++)
        {
            MoveDelay       *= 0.75f;                   // Decrease move delay 25% per wave
            FireDelay       *= 0.9f;                    // Decrease fire delay 10% per wave
            travelSpeedMult *= 1.1f;                    // Increase move speed 10% per wave
        }

        isGameOver = false;
        PathTraveller.CacheStartPosition();
        PathTraveller.MoveSpeed *= travelSpeedMult;

        escape_speed = PathTraveller.MoveSpeed;

        StartCoroutine(StartMovement());
    }
コード例 #2
0
    /// <summary>
    /// Reached the endpoint of the travel path
    /// </summary>
    /// <param name="traveller">Script that called this method</param>
    public void ReachedEndpoint(RFPathTraveller traveller)
    {
        float speed = 7;

        moveToLocal = true;
        MoveToLocation mv = GetComponent <MoveToLocation>();

        mv.StartMove(transform.localPosition, startLocalPosition, true, speed);
    }
コード例 #3
0
 void OnSceneGUI()
 {
     if (viewPath)
     {
         RFPathTraveller traveller = target as RFPathTraveller;
         if (traveller)
         {
             List <Vector3> currPath = traveller.CurrentPath;
             if (currPath != null)
             {
                 Handles.color = Color.gray;
                 for (int cnt = 0; cnt < currPath.Count; cnt++)
                 {
                     Handles.SphereHandleCap(0, currPath[cnt], Quaternion.identity, 0.05f, EventType.Repaint);
                 }
             }
         }
     }
 }
コード例 #4
0
 void Awake()
 {
     PathTraveller = GetComponent <RFPathTraveller>();
     PathTraveller.endpointCallback = ReachedEndpoint;
 }