using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DrawF : MonoBehaviour {
private Camera camera;
Vector2 MousePos = camera.ScreenPointToRay(Input.mousePosition).origin;//ищим положение мыши
Quaternion Qua = new Quaternion(0, 0 , 0, 0);//Кватернион, вообще не нужная(почти) штука(для тебя)
bool Once = true;//Что бы один раз проигрывалось
public float Steps;
private Vector2 firstPos;
private Vector2 secPos;
public GameObject Circle;
public Material LineMat;
public GameObject Clear;
private Transform Parent;
void Update (){
if(Input.GetMouseButtonDown(0))// я создал переменную KeyCodе для этого
{
if(Steps == 0 && Once)
{ Instantiate(Circle, MousePos, Qua);//тут я делаю кружочек на месте клика
firstPos = MousePos;//заносим позицию
Steps = Steps + 1;//+ 1 шаг
Once = false;
}
if(Steps == 1 && Once)//второй шаг
{
Instantiate(Circle, MousePos, Qua);//кружочек
secPos = MousePos;//вторая позиция
Steps = Steps + 1;//+ 1 шаг
Once = false;
}
Once = true;
if(Steps == 2)//Если у нас 2 шага))
{
var line = Instantiate(Clear, firstPos, Qua);//создаём объект
line.AddComponent<LineRenderer>();//доьавляем рендерер
LineRenderer LineRender = line.GetComponent<LineRenderer>();// заносим рендерер как переменную
LineRender.materials[0] = LineMat;// ставим ему материал, который я сделал публичным(!)
LineRender.SetPosition(0, firstPos);//первая позиция
LineRender.SetPosition(1, secPos);//вторая
LineRender.startWidth = 0.200f;// ширина
line.transform.SetParent(Parent);//кидаем под Родителя( переменная Transform)
BoxCollider2D col = new GameObject("Collider").AddComponent<BoxCollider2D> ();
col.transform.parent = line.transform;//заносим колайдер как дочерний к линии
float lineLength = Vector3.Distance (firstPos, secPos); //ищем дистанцию между точками
col.size = new Vector3 (lineLength, 0.1f, 1f);//размер колайдера
Vector3 midPoint = (firstPos + secPos)/2;// средняя точка на линии
col.transform.position = midPoint; //где находится коллизия? на срередине линии!
float angle = (Mathf.Abs (firstPos.y - secPos.y) / Mathf.Abs (firstPos.x - secPos.x));//поворот коллизии
if((firstPos.y<secPos.y && firstPos.x>secPos.x) || (secPos.y<firstPos.y && secPos.x>firstPos.x))//и опять поворт
{
angle*=-1;
}
angle = Mathf.Rad2Deg * Mathf.Atan(angle);// взято из тутора, я не понял)))
col.transform.Rotate (0, 0, angle);// изменяем вращение коллизии
Steps = 0;//И СНОВА \0/
}
}
}
}