Поднятие и бросок объектов 2D

Программирование на Юнити.

Поднятие и бросок объектов 2D

Сообщение Reptil 23 ноя 2017, 08:18

Всем Привет! Когда я нажимаю на любую часть экрана персонаж бросает и поднимает кубик . Как сделать так, чтобы только при нажатии на UI кнопку или определенную область персонаж поднимал и бросал кубик?
Скрипт:
Синтаксис:
Используется csharp
public bool Grabbed;
    RaycastHit2D hit;
    public float Distance = 2f;
    public Transform holdpoint;
    public float Throwforce;
    public LayerMask notgrabbed;



    // Use this for initialization
    void Start()
    {
        Start_Pause_Menu.paused = true;
        Physics2D.queriesStartInColliders = false;

        hit = Physics2D.Raycast(transform.position, Vector2.up * transform.localScale.y, Distance);
        if (hit.collider != null && hit.collider.tag == "grabbable")
        {
            Grabbed = true;
        }

    }

    // Update is called once per frame
    void Update()
    {

        if (Input.GetMouseButtonDown(0))
        {

            if (!Grabbed)
            {
                Physics2D.queriesStartInColliders = false;
                hit = Physics2D.Raycast(transform.position, Vector2.up * transform.localScale.y, Distance);

                if (hit.collider != null && hit.collider.tag == "grabbable")
                {
                    Grabbed = true;
                    if (Buttons.isDouble == false)
                    {
                        ScoreScript.score_value += 1;
                    }
                    else
                    {
                        ScoreScript.score_value += 2;
                    }


                }

                //grab
            }
            else if (!Physics2D.OverlapPoint(holdpoint.position, notgrabbed))
            {
                Grabbed = false;
                if (hit.collider.gameObject.GetComponent<Rigidbody2D>() != null)
                {
                    hit.collider.gameObject.GetComponent<Rigidbody2D>().AddForce(Vector2.up * Throwforce);
                }


                //throw
            }


        }

        if (Grabbed)
        {
            hit.collider.gameObject.transform.position = holdpoint.position;
            hit.collider.gameObject.transform.localRotation = holdpoint.rotation;
        }
    }

    void OnDrawGizmos()
    {
        Gizmos.color = Color.green;

        Gizmos.DrawLine(transform.position, transform.position + Vector3.up * transform.localScale.y * Distance);
    }
Reptil
UNец
 
Сообщения: 1
Зарегистрирован: 23 ноя 2017, 08:11

Re: Поднятие и бросок объектов 2D

Сообщение samana 23 ноя 2017, 11:16

Reptil писал(а):Как сделать так, чтобы только при нажатии на UI кнопку

:-? Хм.. создать UI кнопку и повесить на её OnClick нужный код.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск


Вернуться в Скрипты

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

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