Создаем Объект, который должен ловить шарики. День первый

Создаем Объект, который должен ловить шарики, те в свою очередь двигаются по определённой траектории

3 скрипта

первый движение нашего объекта по 3 точкам

второй на удаление пойманных шариков

третий движение шариков по траектории и первый точки во вторую

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerHelper : MonoBehaviour {


    public GameObject[] Points;
    public float Speed;
    int _index;

    Vector3 _target;



	void Start () {

        _target = transform.position;
	
}    


  void Update () {

        if (Input.GetMouseButtonDown(0))
        {
            if (_index < Points.Length -1)
            
                _index++;

            
            else 
                _index = 0;
                _target = Points[_index].transform.position;
            
        }
        else if (Input.GetMouseButtonDown(1))
        {
            if (_index > 0)
            
                _index--;
            
            else
            
                _index = Points.Length - 1;
                _target = Points[_index].transform.position;
            
        }  

     
 transform.position = Vector3.MoveTowards(transform.position, _target, Time.deltaTime * Speed);  



    }
}

 

 

public GameObject[] Points;   Создаем массив (у нас 3 поинта, по которым движется наш ловец шариков, поэтому нам нужен массив. 

public float Speed;   Скорость, с которой наш объект будет передвигаться от одной точки к другой

int _index;  переменная int будет у нас отвечать за номер поинта,

Vector3 _target;  переменная, с координатами

 

 

двигаемся по коду

 

_target = transform.position;    присваиваем переменной _target текущую позицию, координаты

 

if (Input.GetMouseButtonDown(0)) {       проверяем, если игрок нажал левую кнопку мыши

if (_index < Points.Length -1)  проверяем, если номер поинта меньше количества поинтов -1

_index++;                        то выполняем увеличение текущего номера на единицу

else

_index = 0;                   или присваиваем переменной новое значение 0

_target = Points[_index].transform.position;    и присваиваем переменной  _target  значение координат текущей позиции

 

}

else Или

if (Input.GetMouseButtonDown(1)) {   Если пользователь нажал правую кнопку мышки

if (_index > 0)   если текущий номер позиции больше 0

_index--;  отнимаем от номера  -1

else  или если был не больше 0

_index = Points.Length - 1;   то  присваиваем значение ит количества поинтов -1

_target = Points[_index].transform.position;  и присваиваем переменной _target новые координаы

}

 

transform.position = Vector3.MoveTowards(transform.position, _target, Time.deltaTime * Speed);   передаем координаты новой точки и двигаем наш объект к ней

}

}

 

 

 

 

 

using UnityEngine;

public class EnemyScript : MonoBehaviour {


    public PlayerHelper Player;  



 
  void Start () {
        Destroy(gameObject, 10);

    }
	


	void Update () {
        if (Vector3.Distance(transform.position, Player.transform.position) < 4f)
        {
            Destroy(gameObject);
        }
	}
}

 

Destroy(gameObject, 10);   Удаляем наш шарик через 10 секунду после старта игры

if (Vector3.Distance(transform.position, Player.transform.position) < 4f)   если дистанция текущей позиции и позиции игрока будет меньше 4 то 

{

Destroy(gameObject);    удаляем объект

} } }

 

 

using UnityEngine;

public class MoveScript : MonoBehaviour {

    public Transform EndPoint;
    public float Speed;
    Vector3 _newSize;



    void Start()
    {
        _newSize = new Vector3(transform.localScale.x * 2, transform.localScale.y * 2, transform.localScale.z * 2);

    }



    void Update()
    {
        transform.position = Vector3.MoveTowards(transform.position, EndPoint.position, Time.deltaTime * Speed);

        if (Vector3.Distance(transform.position, EndPoint.position) < 0.1f)
        {

            transform.localScale = Vector3.MoveTowards(transform.localScale, _newSize, Time.deltaTime * Speed);
            Destroy(gameObject, 2.0f);
        }
        else
        {
            transform.position = Vector3.MoveTowards(transform.position, EndPoint.position, Time.deltaTime * Speed);

        }
    }
}

 

 

Скрипт из прошлого урока, двигаем шарик и первоначальной точки, к новой позиции, и если достигаем её - увеличиваем наш объект в 2 раза и удаляем через 2 секунды


Добавить комментарий