Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
4 / 4 / 4
Регистрация: 29.11.2014
Сообщений: 201

Почему игрок не движется вперед?

05.08.2016, 15:08. Показов 1564. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
using UnityEngine;
using System.Collections;
public class Move : MonoBehaviour
{
    public GameObject player;
    public int speedRotation;
    public int speed;
    public int jumpSpeed;
 
    void Start()
    {
        player = (GameObject)this.gameObject;
        
    }
    void Update()
    {
        if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
        {
            player.transform.position += player.transform.forward * speed * Time.deltaTime;
            
        }
        if (Input.GetKeyDown(KeyCode.Space))
        {
            player.transform.position += player.transform.up * jumpSpeed * Time.deltaTime;
        }
    }
}
Player прыгает но не идет вперед.
Почему.Все верно же.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.08.2016, 15:08
Ответы с готовыми решениями:

Как проверить стоит игрок или движется через скрипт
Привет, подскажите как проверить через скрипт стоит игрок или движется

Крестики-нолики с использованием массивов в режиме игрок-игрок
Имею код, не получается написать код для игры игрок-игрок, игрок-компьютер работает прекрасно помогите написать код, особенно обращение к...

Какие числа может объявить игрок A на начальном шаге, чтобы игрок B в некоторый момент объявил число 00.
Игрок A объявляет двузначное число от 01 до 99. Игрок B меняет местами его цифры и прибавляет полученное число к сумме его цифр. Полученный...

11
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
06.08.2016, 07:38
Потому что на осях надо делать.
0
4 / 4 / 4
Регистрация: 29.11.2014
Сообщений: 201
06.08.2016, 11:36  [ТС]
Цитата Сообщение от Cr0c Посмотреть сообщение
Потому что на осях надо делать.
может подскажеш как

Добавлено через 1 час 8 минут
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
using UnityEngine;
using System.Collections;
 
public class Char : MonoBehaviour {
    public float maxSpeed = 10f;
    public float jumpForce = 700f;
    bool facingRight = true;
    bool grounded = false;
    public Transform groundCheck;
    public float groundRadius = 0.2f;
    public LayerMask whatIsGround;
 
    public float move;
 
    // Use this for initialization
    void Start () {
 
    }
    
    // Update is called once per frame
    void FixedUpdate () {
 
 
        grounded = Physics2D.OverlapCircle (groundCheck.position, groundRadius, whatIsGround);
 
        move = Input.GetAxis ("Horizontal");
 
    }
 
    void Update()
    {
        if (grounded && (Input.GetKeyDown (KeyCode.W)||Input.GetKeyDown (KeyCode.UpArrow))) {
 
            GetComponent<Rigidbody2D>().AddForce (new Vector2(0f,jumpForce));
        }
        GetComponent<Rigidbody2D>().velocity = new Vector2 (move * maxSpeed, GetComponent<Rigidbody2D>().velocity.y);
        
        if (move > 0 && !facingRight)
            Flip ();
        else if (move < 0 && facingRight)
            Flip ();
 
 
 
        /*if (Input.GetKey(KeyCode.Escape))
        {
            Application.Quit();
        }
 
        if (Input.GetKey(KeyCode.R))
        {
            Application.LoadLevel(Application.loadedLevel);
        }*/
 
 
    }
    
    void Flip(){
        facingRight = !facingRight;
        Vector3 theScale = transform.localScale;
        theScale.x *= -1;
        transform.localScale = theScale;
    }       
}
нашел таоке но в результате он только на месте крутится
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
06.08.2016, 13:01
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
private Rigidbody2D rb; // рб перса
public float horSpeed = 2f; // скорость бега
public float jumpSpeed = 3f; // скорость прыжка
private bool isJump = false;
private SpriteRenderer sp; // спрайт перса
private bool spd;
 
void Start() {
 sp = GetComponent<SpriteRenderer>();
 rb = GetComponent<Rigidbody2D>();
 spd = spr.FlipX;
}
 
void Update() {
 float x = Input.GetAxis("Horizontal");
 float y = Input.GetAxis("Vertical");
 float vy = rb.velocity.y;
 if (!isJump && y>0) {
  vy += jumpSpeed;
  isJump = true;
 }
 if (y == 0) isJump = false;
 float vx = horSpeed * Mathf.Abs(x);
 rb.velocity = new Vector2(vx, vy);
 if ( (Mathf.Sign(sp.FlipX == 1) != spd) {
  spd = !spd; 
  sp.FlipX = spd;
 }
}
Добавлено через 41 секунду
Провепку земли свою добавите
0
4 / 4 / 4
Регистрация: 29.11.2014
Сообщений: 201
06.08.2016, 13:19  [ТС]
Что за хурма.
Вот код.
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
using UnityEngine;
using System.Collections;
 
public class Char : MonoBehaviour
{
    public int speed = 5;
    public int dir = 0;
    void Start()
    {
 
    }
    void Update()
    {
        if (Input.GetKey(KeyCode.A))
        {
            dir = 0;
            Move();
        }
        else if (Input.GetKey(KeyCode.D))
        {
            dir = 1;
            Move();
        }
    }
    void Move()
    {
        if( dir != 0)
        {
            GetComponent<Rigidbody2D>().velocity = new Vector2(dir * speed, GetComponent<Rigidbody2D>().velocity.y);
        }
    }
 
 
}
Переменная dir изменятся в инспекторе в Unity с 0 на 1 значит он должен идти но он на месте стоит.!!!!
Либо я рак либо в 5 версии Unity по другому это делается.
Все скрипты годовалой давности поновее не нашел.

Добавлено через 17 минут
он только прыгает
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
06.08.2016, 13:24
С этим кодом он только вправо будет идти. Коллайдер какой поставили - круглый?

Добавлено через 1 минуту
Мой код точно работает, проверяйте сцену. Квадратный коллайдер очень любит цепляться даже на ровном месте, замените его круглым

Добавлено через 3 минуты
Я здесь забыл поворот проверять:
C#
1
2
3
4
if (vx != 0) spd = (Mathf.Sign(vx) == 1);
if ( (Mathf.Sign(sp.FlipX == 1) != spd) {
* sp.FlipX = spd;
*}
0
4 / 4 / 4
Регистрация: 29.11.2014
Сообщений: 201
06.08.2016, 13:27  [ТС]
Цитата Сообщение от Cr0c Посмотреть сообщение
Квадратный коллайдер очень любит цепляться даже на ровном месте, замените его круглым
у меня квадратный до половины спрайта. в низу круглый

Добавлено через 14 секунд
Цитата Сообщение от Cr0c Посмотреть сообщение
Провепку земли свою добавите
а это что?

Добавлено через 2 минуты
На FlipX ругается

'SpriteRenderer" не содержит определения для "FlipX" и не удалось найти метод расширения "FlipX", принимающий тип "SpriteRenderer" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку). Assembly-CSharp C:\UnityProject\All\Assets\Scripts\NewBe haviourScript.cs 35

Добавлено через 31 секунду
может дополнительный using надо.
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
06.08.2016, 13:33
Значит там flipX, регистр смотри.

Добавлено через 1 минуту
И как же до этого проверил, что только прыгает, если ошибкой ругается и не запускается?!
0
4 / 4 / 4
Регистрация: 29.11.2014
Сообщений: 201
06.08.2016, 13:34  [ТС]
Цитата Сообщение от Cr0c Посмотреть сообщение
Значит там flipX, регистр смотри.
C#
1
spd = spd.FlipX;
Ошибка
'bool" не содержит определения для "FlipX" и не удалось найти метод расширения "FlipX", принимающий тип "bool" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).

Добавлено через 42 секунды
Цитата Сообщение от Cr0c Посмотреть сообщение
И как же до этого проверил, что только прыгает, если ошибкой ругается и не запускается?!
Я строчки с
C#
1
FlipX
закоментировал
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
06.08.2016, 13:40
https://docs.unity3d.com/Scrip... flipX.html
0
4 / 4 / 4
Регистрация: 29.11.2014
Сообщений: 201
06.08.2016, 13:43  [ТС]
Цитата Сообщение от Cr0c Посмотреть сообщение
Провепку земли свою добавите
Как добавить.
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
06.08.2016, 13:50
C#
1
2
3
void FixedUpdate () {
 grounded = Physics2D.OverlapCircle (groundCheck.position, groundRadius, whatIsGround);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.08.2016, 13:50
Помогаю со студенческими работами здесь

Почему не получается двигаться вперёд?
Здравствуйте. Обычно за усердность и трудолюбие жизнь отплачивает сбывшимися мечтами и дарами, делая тебя намного счастливее и сильнее, чем...

Почему картинка движется медленнее курсора?
Здравствуйте. Вот код: http://learn.javascript.ru/play/MWXqnc В данном примере картинка движется медленнее курсора и дергается. Скажите...

Я написал код для игры на pygame, но игрок почему то прыгает полько один раз
Почему он так делает? Вроде все правильно, а прыгает только один раз. Точнее, я нажимаю на пробел(клавиша для прыжка), игрок прыгает,...

Первый игрок делает ход в "дурака" - определить, сможет ли второй игрок побить эту карту
Заданы достоинства и масти шести шести карт первого игрока, достоинства и масти шести карт второго игрока, кроме того, известна козырная...

Игрок А объявляет двузначное число от 01 до 99. Игрок В меняет местами его цифры и прибавляет полученное число
Игрок А объявляет двузначное число от 01 до 99. Игрок В меняет местами его цифры и прибавляет полученное число к сумме его цифр. Полученный...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru