Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/75: Рейтинг темы: голосов - 75, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 6

Андроид управление

10.01.2018, 12:11. Показов 15883. Ответов 7

Студворк — интернет-сервис помощи студентам
Всем привет!!! Помогите мне, пожалуйста, перевести скрипт с ПК на Андроид управление.
Вот скрипт


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using UnityEngine;
using System.Collections;
 
public class Character : Unit
{
  
    private LivesBar livesBar;
 
    [SerializeField]
    private float speed = 3.0F;
    [SerializeField]
    private float jumpForce = 15.0F;
 
    private bool isGrounded = false;
 
    public int directionInput;
 
    private CharState State
    {
        get { return (CharState)animator.GetInteger("State"); }
        set { animator.SetInteger("State", (int)value); }
    }
 
    new private Rigidbody2D rigidbody;
    private Animator animator;
    private SpriteRenderer sprite;
 
    private void Awake()
    {
 
        rigidbody = GetComponent<Rigidbody2D>();
        animator = GetComponent<Animator>();
        sprite = GetComponentInChildren<SpriteRenderer>();
    }
 
    private void FixedUpdate()
    {
        CheckGround();
    }
 
    private void Update()
    {
        if (isGrounded) State = CharState.Idle;
        if (Input.GetButton("Horizontal")) Run();
        if (isGrounded && Input.GetButtonDown("Jump")) Jump();
    }
 
        
 
 
    private void Run()
    {
        Vector3 direction = transform.right * Input.GetAxis("Horizontal");
 
        transform.position = Vector3.MoveTowards(transform.position, transform.position + direction, speed * Time.deltaTime);
 
        sprite.flipX = direction.x < 0.0F;
 
        if (isGrounded) State = CharState.Run;
    }
 
 
    private void Jump()
    {
        rigidbody.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
    }
 
    
 
    private void CheckGround()
    {
        Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, 0.3F);
 
        isGrounded = colliders.Length > 1;
 
        if (!isGrounded) State = CharState.Jump;
    }
        
}
 
 
public enum CharState
{
    Idle,
    Run,
    Jump
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.01.2018, 12:11
Ответы с готовыми решениями:

Управление на андроид
Здравствуйте, хочу попросить помощи. Сделала обычный поворот объекта вокруг оси, работает все приятно, но есть проблема с переносом этого...

Андроид управление
Всем здраствуйте!!! Помогите мне, пожалуйста, перевести скрипт с ПК на Андроид управление стиком Fixed Joystick. Вот скрипт:using System;...

Управление на андроид
3 часа ломаю голову, точнее пытаюсь найти хоть какие-то зацепки, но никак, все туториалы сводятся к &quot;сегодня покажу как сделалть...

7
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
11.01.2018, 10:45
Цитата Сообщение от Prostoat Посмотреть сообщение
if (Input.GetButton("Horizontal")) Run();
if (isGrounded && Input.GetButtonDown("Jump")) Jump();
если вы собираетесь использовать кнопки или джойстик для управления, то строки выше необходимо переделать под вызов кнопками.

кнопки влево вправо
C#
1
Run();
кнопка джамп
C#
1
Jump();
соответственно с кодом внутри методов тоже необходимо поколдовать.
1
 Аватар для Prog_maker
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
11.01.2018, 12:20
Лучший ответ Сообщение было отмечено Prostoat как решение

Решение

1. Переключиться на Android.
2. Скачать Standart Assets -> CrossPlatformInput.
3. На сцену кинуть префаб MobileSingleStickControl - виртуальный джойскик и кнопка прыгать.
И можно еще MobileAircraftControls - там кнопки есть право влево
и собрать из них один как вам надо.

4.Поменять в коде
C#
1
2
3
Input.GetButton("Horizontal");
Input.GetAxis("Horizontal");
Input.GetButtonDown("Jump");
на
C#
1
2
3
CrossPlatformInputManager.GetButton("Horizontal");
CrossPlatformInputManager.GetAxis("Horizontal");
CrossPlatformInputManager.GetButtonDown("Jump");
3
1 / 1 / 0
Регистрация: 09.08.2018
Сообщений: 1
10.08.2018, 12:32
Сделал все как вы сказали , но почему то в когда в скрипте меняю Input на CrossPlatformInputManager выходит ошибка , насчет того что этого имени не существует в данном контексте . Не могли бы помочь мне ?
1
 Аватар для Prog_maker
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
13.08.2018, 12:52
Код напишите
0
0 / 0 / 0
Регистрация: 08.04.2020
Сообщений: 1
08.04.2020, 14:10
У меня точно такая же проблема. Помогите пожалуйста перевести скрипт с ПК на Андроид управление. Буду очень благодарен.

Вот скрипт

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System.Collections;
using System.Collections.Generic;
    using UnityEngine;
 
public class PlayerCntrl : MonoBehaviour
{
 
    public float speed;
    public float jumpForce;
    private float moveInput;
   
 
    private Rigidbody2D rb;
 
    private bool isGrounded;
    public Transform groundCheck;
    public float checkRadius;
    public float horizontalSpeed;
    public LayerMask whatIsGround;
 
    private int extraJumps;
    public int extraJumpsValue;
 
 
 
  
    private void Update()
    { 
 
        if (isGrounded == true)
        {
        extraJumps = extraJumpsValue;
        }
    
        if (Input.GetKeyDown(KeyCode.Space) && extraJumps > 0)
    {
            rb.velocity = Vector2.up * jumpForce;
        extraJumps--;
    }else if (Input.GetKeyDown(KeyCode.Space) && extraJumps == 0 && isGrounded == true)
    {
    rb.velocity = Vector2.up* jumpForce;
    }
}
 
    private void Start()
    {
    extraJumps = extraJumpsValue;
        rb = GetComponent<Rigidbody2D>();
    }
 
    private void FixedUpdate()
    {
        isGrounded = Physics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
 
        moveInput = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
    }
0
56 / 36 / 20
Регистрация: 27.08.2015
Сообщений: 252
08.04.2020, 18:49
точно так же ка и выше вместо Input.GetKey..... используй Input.GetAxis это если управление будет гироскопом(наклоном), а если кнопки на экране тогда условием если нажали на какое то место, то делаем .. это можно сказать основы.
1
4 / 3 / 1
Регистрация: 30.01.2022
Сообщений: 16
31.01.2022, 12:48
Доброго времени суток, хочу выразить свою признательность, многие люди на этом форуме действительно помогают создать отличные проекты. Ваш ответ помог мне за несколько секунд, я пришел на этот форум что бы спросить про некоторые нюансы, но благодаря таким людям как вы, все сразу становится ясно.

Спасибо, желаю по больше адекватных людей в вашем окружении =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.01.2022, 12:48
Помогаю со студенческими работами здесь

Управление камерой на андроид
Объясните, плиз, как сделать управление FreeLookCamera от третьего лица в андроид перемещая пальцем по экрану:help::help::help: Я...

Управление под андроид
Привет всем!!! Недавно я получил файлы игры My Summer Car. Распаковал через Unity Ripper. Всё получилось, игра запускается в юнити....

Управление под Андроид
Доброго времени суток вот решил сделать управление и столкнуться с проблемой игрок не двигается в нудном направлении а движется только...

Управление персонажем в 3D на андроид
Доброго времени суток! Начал разрабатывать свою первую игру на Unity3D. Задача в том, чтобы персонаж перемещался автоматически с заданной...

Управление под андроид Unity
Прошу помощи. Начал изучать Unity. Сделал управление для пк. Теперь хочу переделать под телефоны. Но не знаю как. Вот код. Делал кстати по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru