Привет всем , уже 4й вечер сижу над "фаерболлом" Сделал рабочий префаб "фаерболла" (разрушение при столкновении , визуализацию , селфдестрой через 2 секунды)
Но не тут то было , столкнулся с проблемами а именно : 1.фаерболл создается на том месте , где был создан сам префаб , а не возле контроллера
JS Код спауна "ферболла"
[/code]var fb:GameObject; private var coun:int = 0; var F:GameObject;
function Update() { if (Input.touchCount > 0 ) { var touchPosition:Vector2 = Input.GetTouch(0).position; if (guiTexture.HitTest(touchPosition) ) coun ++;
} if (coun == 1){ Instantiate(fb); } if (coun > 1){ F.SetActive (false);
coun = 0; } }
2.При нажатии на гуи.текстуру создается не фиксированное количество "фаерболлов"
Также(скрипт движения "фаерболла", скрипт саморазрушения)
Код
function Update () { rigidbody.AddForce(40,40,0 ^ 200); }
Код
private var a :float = 2; var self:GameObject;
function Update () { a -= Time.deltaTime; if (a<=0) { Destroy(self); }
}
Проект под андроид Надеюсь найдем ответ на этот каверзный вопрос ). Спасибо всем кто откликнулся И опыт сын ошибок трудных
Сообщение отредактировал Germetic - Четверг, 16 Октября 2014, 16:05
Множество инстансов у тебя получается из-за того, что как такового OnMouseDown и OnMouseUp нет при тачах. Костыли где такие нашел?:) При нажатии пальцем на экран у тебя вызывается множественное срабатывание за те же доли секунды.
Если тебе нужен один файерболл по тачу, то - вот:
touch.phase == TouchPhase.Began; //инстанцируй как только был тач, либо как только убрали палец: if(touch.phase == TouchPhase.Canceled || touch.phase == TouchPhase.Ended)
угу и, как сказал, allods, в своем скрипте поменяй Instantiate(fb); на Instantiate(fb,transform.position,transform.rotation); //где fb - ГО - твой файерболл, transform.rotation - означает позицию твоей пустышки/откуда полетит файерболл, можешь поставить любой вектор3, transorm.rotation - направление в котором полетит файерболл/направление, куда смотрит твоя пустышка, или любой Quaternion rotation;
пустышка или персонаж значения не имеют: в случае такого написания, файерболл будет вылетать из центра персонажа в направлении, куда смотрит персонаж. В случае, если повесишь скрипт инстанса файерболла на пустышку, то болл будет инстанциироваться из места пустышки и туда же смотреть. http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
var fb:GameObject; public var coun:int = 0; var F:GameObject;
function Update() { for (var myTouch : Touch in Input.touches) { if (myTouch.phase == TouchPhase.Began) Instantiate(fb,transform.position,transform.rotation); } }
MANMANA,это работает , осталось только колдаун настроить и таргет вылета спустя 15 минут ... скорее всего код битый =) Скрин :
Ошибка : куда бы я не нажал - создается фаерболл , т.е. касание пальцем любой части скрина телефона - создает фаерболл.
Добавлено (17.10.2014, 18:19) --------------------------------------------- Собственно решение проблемы " множественного нажатия " Код:
Код
static public var coun:int = 0; static var F:GameObject; var selfbutton:GUITexture;
function Update() { for (var myTouch : Touch in Input.touches) { if (myTouch.phase == TouchPhase.Began && selfbutton.HitTest (myTouch.position)) { coun = 1; } } }
Не уверен , можно ли давать ссылки на ютуб , но вот видео где все рассказано (кто знает инглыш можете подсмотреть) Жми сюда <--- И опыт сын ошибок трудных
Сообщение отредактировал Germetic - Пятница, 17 Октября 2014, 17:36