Увеличивает локальную шкалу в зависимости от положения мыши - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь сделать то, что мне не подходит.Я хочу, чтобы мой объект масштабировался в зависимости от положения мыши на оси Y.

void Update()
{
    var mPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
    mPosition.z = 0;
    target.transform.position = mPosition;
    float scaleValue = Mathf.Round(mPosition.y);
    target.transform.localScale = new Vector3(target.transform.localScale.x + scaleValue / 50f, target.transform.localScale.y + scaleValue / 50f, 0f);
    if (Input.GetMouseButtonDown(0) && canShoot)
    {
        Fire();
    }
}

Проблема в том, что после запуска игры объект (цель) неуклонно растет.Я просто хочу сделать какой-то эффект, когда я двигаю мусс вверх, объект сжимается, когда он движется вниз, объект растет.С чем я не прав, спасибо !!!

1 Ответ

0 голосов
/ 18 декабря 2018

Проблема в том, что вы добавляете к вашему локальному масштабу каждый кадр.Вы должны сделать что-то вроде этого:

Vector3 startScale;
void Awake(){
    startScale =   target.transform.localScale;
}
void Update()
{
    var mPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
    mPosition.z = 0;
    target.transform.position = mPosition;
    float scaleValue = Mathf.Round(mPosition.y);
    // you probably need to change the scaleValue to make it make more sense
    target.transform.localScale =startScale  * scaleValue;
    if (Input.GetMouseButtonDown(0) && canShoot)
    {
        Fire();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...