Суббота, 23 Ноября 2024, 13:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Android управление
ArtemoidДата: Суббота, 25 Апреля 2015, 11:02 | Сообщение # 1
частый гость
Сейчас нет на сайте
Всем привет! Хочу запилить игрушку на android смартфны, но не могу допереть как сделать управление джойстиком(их два). Копал уроки, но там либо всё старое, либо ничего не обьяснено. Нашёл только более менее нормальный англоязычный урок, но там что-то не подходит и персонаж у меня не двигается, а разобраться в скрипте не могу(но догадываюсь, что он просто работает с уже готовым скриптом characterController).
Будьте добры: напишите здесь скрипт для управление джойстиком(желательно с комментариями).
Буду благодарен smile
PATCH1Дата: Суббота, 25 Апреля 2015, 11:37 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
пример под Ios - думаю сменить платформу на android не составит труда, у обоих платформ сенсорное управление)
2. В Unity5 есть уже готовые кроссплатформенные прокомментированые скрипты


Сообщение отредактировал PATCH1 - Суббота, 25 Апреля 2015, 11:37
ArtemoidДата: Воскресенье, 26 Апреля 2015, 13:12 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата PATCH1 ()
пример под Ios - думаю сменить платформу на android не составит труда, у обоих платформ сенсорное управление)
2. В Unity5 есть уже готовые кроссплатформенные прокомментированые скрипты

честно, там не то, что мне надо...
Обьясните пожалуйста как мне двигать обьект джойстиком..
GreexonДата: Воскресенье, 26 Апреля 2015, 19:07 | Сообщение # 4
почетный гость
Сейчас нет на сайте
ArtemoidДата: Воскресенье, 26 Апреля 2015, 22:20 | Сообщение # 5
частый гость
Сейчас нет на сайте
Цитата Greexon ()
Greexon Дата: Воскресенье, сегодня, 19:07 | Сообщение # 4
[Greexon]
почетный гость
Сообщений: 77
Всего наград: 0
Репутация: 1 ±
Замечания: 0%
Сейчас нет на сайте


Код

using UnityEngine;
using System.Collections;

public class Joystick : MonoBehaviour {

public float speed = 0.1f;
public float radius;
public Vector3 Center;

void Update(){
Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
Vector3 newPos = transform.position + movement;
Vector3 offset = newPos - Center;
transform.position = Center + Vector3.ClampMagnitude(offset, radius);

foreach(Touch touch in Input.touches){
if(this.GetComponent<GUITexture>().HitTest(touch.position)){
touchfinger = true;
}
}
if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved && touchfinger == true){
Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
transform.Translate(touchDeltaPosition.x * speed * Time.deltaTime, touchDeltaPosition.y * speed * Time.deltaTime, 0);
}
}

Жалуется на touchfinger в 21 строке: the name ''touchfinger' does not exist in current context
Бред какой-то..

Добавлено (26 апреля 2015, 22:20)
---------------------------------------------

Цитата Greexon ()
Greexon Дата: Воскресенье, сегодня, 19:07 | Сообщение # 4
[Greexon]
почетный гость
Сообщений: 77
Всего наград: 0
Репутация: 1 ±
Замечания: 0%
Сейчас нет на сайте


Код

using UnityEngine;
using System.Collections;

public class Joystick : MonoBehaviour {

public float speed = 0.1f;
public float radius;
public Vector3 Center;

void Update(){
Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
Vector3 newPos = transform.position + movement;
Vector3 offset = newPos - Center;
transform.position = Center + Vector3.ClampMagnitude(offset, radius);

foreach(Touch touch in Input.touches){
if(this.GetComponent<GUITexture>().HitTest(touch.position)){
touchfinger = true;
}
}
if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved && touchfinger == true){
Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
transform.Translate(touchDeltaPosition.x * speed * Time.deltaTime, touchDeltaPosition.y * speed * Time.deltaTime, 0);
}
}
}


Исправил ошибку) спасибо за скрипт! Он же будет работать только с планшета/смартфона, да?
MANMANAДата: Понедельник, 27 Апреля 2015, 00:34 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
да, почитаешь? smile
http://docs.unity3d.com/ru/current/Manual/MobileInput.html
http://docs.unity3d.com/ScriptReference/Input.GetTouch.html
http://docs.unity3d.com/ScriptReference/Input-touches.html
http://docs.unity3d.com/ScriptReference/Touch.html


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
ArtemoidДата: Понедельник, 27 Апреля 2015, 15:44 | Сообщение # 7
частый гость
Сейчас нет на сайте
Цитата MANMANA ()
MANMANA Дата: Понедельник, сегодня, 00:34 | Сообщение # 6
заслуженный участник
Сообщений: 530
Всего наград: 0
Репутация: 177 ±
Замечания: 0%
Сейчас нет на сайте
да, почитаешь? smile
http://docs.unity3d.com/ru/current/Manual/MobileInput.html
http://docs.unity3d.com/ScriptReference/Input.GetTouch.html
http://docs.unity3d.com/ScriptReference/Input-touches.html
http://docs.unity3d.com/ScriptReference/Touch.html


Честно, читал, но так ничего и не понял. Там тупо перечисление функций(ну или как это назвать?)а как ими пользоваться я сам так и не понял...

Добавлено (27 апреля 2015, 15:44)
---------------------------------------------

Цитата Artemoid ()
Исправил ошибку) спасибо за скрипт! Он же будет работать только с планшета/смартфона, да?

Исправить исправил, но ничего не работает XD
GreexonДата: Понедельник, 27 Апреля 2015, 16:39 | Сообщение # 8
почетный гость
Сейчас нет на сайте
Цитата Artemoid ()
Исправить исправил, но ничего не работает XD

Как говорится - у меня всё работает

Добавлено (27 апреля 2015, 16:39)
---------------------------------------------
а у тебя Joystick текстурой или через новый Unity UI?

ArtemoidДата: Понедельник, 27 Апреля 2015, 21:27 | Сообщение # 9
частый гость
Сейчас нет на сайте
Цитата Greexon ()
Как говорится - у меня всё работает

Добавлено (27 апреля 2015, 16:39)
---------------------------------------------
а у тебя Joystick текстурой или через новый Unity UI?


Всё, разобрался сам, спасибо smile

Добавлено (27 апреля 2015, 21:27)
---------------------------------------------

Цитата Artemoid ()
Всё, разобрался сам, спасибо smile


Только опять проблема..скомпилировал чтобы посмотреть как это всё выглидить будет, а при повороте телефона в горизонтальное положение, то картинка вертикальной так и остаётся..как поменять ориентацию по умолчанию или чтобы при повороте картинка подстраивалась?
ЛевшаДата: Вторник, 28 Апреля 2015, 12:02 | Сообщение # 10
почти ветеран
Сейчас нет на сайте


X.cor.R (Prologue)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг