示例#1
0
    // Update is called once per frame
    void Update()
    {
        slimey = this;

        //Macht dass sich der Slimey von Punkt a zu Punkt b und zu Punkt c usw. bewegen kann
        Vector3 startPosition = waypoints[currentWaypoint].transform.position;
        Vector3 endPosition   = waypoints[currentWaypoint + 1].transform.position;

        float pathLength        = Vector3.Distance(startPosition, endPosition);
        float totalTimeForPath  = pathLength / speed;
        float currentTimeOnPath = Time.time - lastWaypointSwitchTime;

        gameObject.transform.position = Vector2.Lerp(startPosition, endPosition, currentTimeOnPath / totalTimeForPath);

        if (gameObject.transform.position.Equals(endPosition))      //kontrolliert ob der Slimey schon am letzten Waypoint ist
        {
            if (currentWaypoint < waypoints.Length - 2)
            {
                currentWaypoint++;
                lastWaypointSwitchTime = Time.time;
            }
            else    //zerstört den Slimey und setzt die Leben auf eines weniger
            {
                CameraShake.instance.StartShake();
                Destroy(gameObject);
                GameManager.singleton.SetHealth(GameManager.singleton.GetHealth() - LifeDamage);
            }
        }
    }
示例#2
0
 // Start is called before the first frame update
 void Start()
 {
     speed = startSpeed;
     lastWaypointSwitchTime = Time.time;     //Time = Zeit ?XD
     slimey = this;
 }