Механика рисования платформ.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Re: Механика рисования платформ.

Сообщение DimaJoke 05 дек 2018, 20:42

Ну. У меня есть переменная Transform с именем Parent(это к первому ерору) (я это вроде писал)

И у меня есть переменная Camera с именем camera

Вот и всё


ЗЫ не добавляй код как спойлер, для этого есть кнопочка cs(после dropdown меню с выбором размера шрифта)

Так и смотреть удобнее, ведь код подсвечивается автоматически
Что бы повзрослеть, человек должен преодолеть ошибки юности.

Поэтому я снова здесь..
Аватара пользователя
DimaJoke
UNITрон
 
Сообщения: 293
Зарегистрирован: 12 авг 2018, 18:59
Откуда: Ульяновск
  • Сайт

Re: Механика рисования платформ.

Сообщение Ankarin 05 дек 2018, 23:04

DimaJoke писал(а):Ну. У меня есть переменная Transform с именем Parent(это к первому ерору) (я это вроде писал)

И у меня есть переменная Camera с именем camera

Вот и всё


ЗЫ не добавляй код как спойлер, для этого есть кнопочка cs(после dropdown меню с выбором размера шрифта)

Так и смотреть удобнее, ведь код подсвечивается автоматически

Синтаксис:
Используется csharp
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/
       
        }
                }
                }
}
 

Assets/Assets/Scripts/DrawF.cs(7,28): error CS0236: A field initializer cannot reference the nonstatic field, method, or property `DrawF.camera'
:think:
Ankarin
UNец
 
Сообщения: 8
Зарегистрирован: 03 дек 2018, 14:32

Re: Механика рисования платформ.

Сообщение DimaJoke 05 дек 2018, 23:14

Нет, камера у меня публичная т.е. public Camera camera; а потом просто в инспекторе мэин камеру там указываю и всо

Кстати Steps лучше int сделай

И..
Синтаксис:
Используется csharp
Vector2 MousePos = camera.ScreenPointToRay(Input.mousePosition).origin;//ищим положение мыши

Поставь в Update

И bool Once тоже
Что бы повзрослеть, человек должен преодолеть ошибки юности.

Поэтому я снова здесь..
Аватара пользователя
DimaJoke
UNITрон
 
Сообщения: 293
Зарегистрирован: 12 авг 2018, 18:59
Откуда: Ульяновск
  • Сайт

Пред.

Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28