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

Написание скрипта для перемещения персонажа в Unity

19.04.2018, 18:13. Показов 33188. Ответов 6

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Решил начать изучение движка Unity, с оф сайта скачал, версия Unity 2017.4.0f1. Начал создавать платформер и уткнулся в проблему написания скрипта для передвижения. Скрин ошибки в приложении


И Собственно сам скрипт:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class PlayerScript : MonoBehaviour 
{
    public Vector2 speed = new Vector2 (50, 50);
    private Vector2 movement;
    void Update()
    {
        float inputX = Input.GetAxis ("Horizontal");
        float inputY = Input.GetAxis ("Vertical");
        movement = new Vector2 (
            speed.x * inputX,
            speed.y * inputY);
    }
 
    void FixedUpdate()
    {
        rigidbody2D.velocity = movement;
    }
}
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.04.2018, 18:13
Ответы с готовыми решениями:

Unity - Обращение к публичным полям одного скрипта из другого скрипта
Привет. Скрипты пишу на CSharp. В одном gameObject (назовем его HelloObject) есть два скрипта - Script1 и Script2. У script2 есть...

Unity анимация 3D персонажа
Всем привет! Мне нужно для персонажа сделать анимацию. Перезарядки оружия, рубки дерева и другое. Формат моего персонада .fbx и я не знаю в...

Движения 3D персонажа на Unity
Помогите пожалуйста с кодом я его уже 6 часов пытаюсь написать. Напишите пожалуйста. Заранее вам благодарен.

6
2 / 2 / 0
Регистрация: 07.10.2014
Сообщений: 103
19.04.2018, 18:41
Такое обычно из-за ошибочного написания. В вашем случае думается мне что Rigidbody2D нужно написать с большой буквы. Тогда в ссылочном типе от Component до Rigidbody2D будет путь и все должно заработать. Проверите - отпишитесь.
0
1 / 1 / 0
Регистрация: 19.04.2018
Сообщений: 4
19.04.2018, 18:51  [ТС]
есть прогресс, ошибка осталась, но другая

0
1 / 1 / 0
Регистрация: 19.04.2018
Сообщений: 4
19.04.2018, 18:52  [ТС]
есть прогресс, ошибка осталась, но другая
Миниатюры
Написание скрипта для перемещения персонажа в Unity  
0
1 / 1 / 0
Регистрация: 19.04.2018
Сообщений: 4
19.04.2018, 19:03  [ТС]
Заработало, добавил

C#
1
GetComponent<Rigidbody2D>()
Добавлено через 6 минут
А можно сразу вопрос в догонку, в коде управление курсорами, как сделать управление мышью и добавить ограничение, чтобы не улетал за экран?
0
2 / 2 / 0
Регистрация: 07.10.2014
Сообщений: 103
19.04.2018, 19:09
Это обычно значит что поле или объект не статично-ен, что и указано в ошибке, решается обычно явной ссылкой на объект. Как я понимаю Rigidbody2D принадлежит объекту на который накинут скрипт, значит нужно либо явно указать переменную Rigidbody2D в скрипте, как явный компонент этого объекта. Если интересно, это делается через метод любого компонента, в вашем случае Rigidbody2D GetComponent("Тут_текстом_название_Компонента")

Либо как то по другому.
(Как то по другому это объявить поле статичным вместе с со всем остальным, но я честно говоря не оч. сведущ поможет ли это)

Добавлено через 5 минут
Чтоб не улетел за пределы экрана, нужно создать привязанные к краям камеры объекты, у которых прописаны компоненты коллайдера. На сам объект нужно наложить Коллайдер. Есть урок в котором объясняется работа коллайдеров, но в API Все и так прописано по их поводу.
По поводу мыши не подскажу к сожалению.
0
 Аватар для Serj190492
160 / 159 / 59
Регистрация: 19.02.2015
Сообщений: 830
20.04.2018, 19:07
Цитата Сообщение от yourmom69 Посмотреть сообщение
GetComponent<Rigidbody2D>()
GetComponent лучше вызвать один раз в Start, вместо того, чтобы вызывать его каждый FixedUpdate.
Т.е.
C#
1
2
3
4
5
6
7
8
9
Rigidbody2D rb;
 
void Start(){
    rb = GetComponent<Rigidbody2D>();
}
 
void FixedUpdate(){
    rb.velocity = movement;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2018, 19:07
Помогаю со студенческими работами здесь

Проблема передвижение персонажа
Привет) Написал код для передвижения персонажа от первого лица. Создал два скрипта отвечающие за ввод с мышки и клавиатуры. Все...

Преследование персонажа врагом Unity 2D
День добрый, проблема такая. Когда я включаю is Trigger на Collider2D, то враги начинают проходить сквозь друг друга, когда следуют за...

Ошибка в движении персонажа C# Unity
Здравствуйте друзья есть игра наподобие Subway Surf вот все работе но есть проблема когда я свайпаю экран вправо влево персонаж прыгает...

Анимация игрового персонажа unity 2d
Помогите с анимацией персонажа при движении влево и вправо. Вся анимация настроена и работает нормально, требуется написать код на C#...

Проблема Unity с управлением C# движение персонажа джойстик
Сделал сцену с персонажем которым по идее должен управлять джойстиком персонаж имеет компонент CharacterController и скрипт...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru