Результаты поиска
| |
ZigMoonT | Дата: Среда, 12 Августа 2020, 00:10 | Сообщение # 1 | Тема: Враг трясется, как бешеный [Решение найдено!] |
был не раз
Сейчас нет на сайте
| Всем привет! Суть алгоритма заключается в том, чтобы враг подходил к игроку, чтобы враг убегал от игрока и чтобы враг стал на фиксированном расстоянии. На гифке ниже можно наблюдать тряску врага .
Вставил ту часть кода в которой подразумеваю ошибки. Очень прошу вас помочь.
Код private void FixedUpdate() { if (Vector2.Distance(transform.position, player.position) > maxDistance) { rb.constraints = RigidbodyConstraints2D.None; rb.isKinematic = false; moveCharacter(movement, moveSpeed); }
else if (Vector2.Distance(transform.position, player.position) < maxDistance) { rb.constraints = RigidbodyConstraints2D.None; moveCharacter(movement, -moveSpeed); }
else if (Vector2.Distance(transform.position, player.position) == maxDistance) { rb.constraints = RigidbodyConstraints2D.FreezeAll; rb.isKinematic = false; } }
void moveCharacter(Vector2 direction, float speed) { rb.MovePosition((Vector2)transform.position + (direction * speed * Time.deltaTime)); }
Добавлено (12 Августа 2020, 00:57) --------------------------------------------- Решение нашлось методом тыка. Для того, чтобы врага не штырило, необходимо увеличить значение линейного сопротивления и углового. На английском Linear drag and Angular drag.
Всем кто столкнулся с подобной проблемой желаю удачи!Добавлено (12 Августа 2020, 12:11) --------------------------------------------- Так же таким способом можно убирать дрожь игрока, если тот трясется при столкновении с коллайдерами.
Сообщение отредактировал ZigMoonT - Среда, 12 Августа 2020, 00:58 |
|
| |
ZigMoonT | Дата: Понедельник, 11 Мая 2020, 16:34 | Сообщение # 2 | Тема: Анимация игрока в падении [Решено!] |
был не раз
Сейчас нет на сайте
| freeprogrammer, большое спасибо!
|
|
| |
ZigMoonT | Дата: Понедельник, 11 Мая 2020, 03:00 | Сообщение # 3 | Тема: Анимация игрока в падении [Решено!] |
был не раз
Сейчас нет на сайте
| Здравствуйте. У персонажа в игре при падении с платформы продолжается анимация бега или ходьбы, на видео можно увидеть. Вот видео. В видео я не продолжал нажимать клавиши движения, персонаж просто падал. Не вините меня за спрайт перса, я только разбираюсь в основах создания 2D игр. Если нужно объяснение моего невнятного кода, то обязательно все распишу.
Код using System.Collections; using System.Collections.Generic; using UnityEngine;
public class PlayerController : MonoBehaviour {
Rigidbody2D rb; Animator animator; SpriteRenderer sprite;
[SerializeField] int speed; [SerializeField] int jumpForce; [SerializeField] Transform CheckGround; [SerializeField] int run;
private int speed1; private bool speedBool = false; private bool idle = true;
bool isGrounded; private float time = 3f; public float timeOut = 3f;
private void Start() { speed1 = speed; rb = GetComponent<Rigidbody2D>(); animator = GetComponent<Animator>(); sprite = GetComponent<SpriteRenderer>(); }
void Update() { time += Time.deltaTime; }
private void FixedUpdate() {
if(Physics2D.Linecast(transform.position, CheckGround.position, 1 << LayerMask.NameToLayer("Ground"))) { isGrounded = true; } else { isGrounded = false; }
if (Input.GetKey(KeyCode.D)) { rb.velocity = new Vector2(speed, rb.velocity.y); if (isGrounded && speedBool == false) animator.Play("Player_Run");
sprite.flipX = false; idle = false; } else if (Input.GetKey(KeyCode.A)) { rb.velocity = new Vector2(-speed, rb.velocity.y);
if (isGrounded && speedBool == false) animator.Play("Player_Run");
idle = false; sprite.flipX = true; } else if(isGrounded) { rb.velocity = new Vector2(0, rb.velocity.y);
if (isGrounded) animator.Play("Player_Idle"); idle = true; }
if (Input.GetKey(KeyCode.LeftShift) && idle == false) { speed = run; speedBool = true;
if (isGrounded) animator.Play("Player_Runing"); } else { speed = speed1; speedBool = false; }
if (Input.GetKey(KeyCode.W) && isGrounded == true && time > timeOut) { time = 0f; rb.velocity = new Vector2(rb.velocity.x, jumpForce); animator.Play("Player_Jump"); } } }
Сообщение отредактировал ZigMoonT - Понедельник, 11 Мая 2020, 16:34 |
|
| |
ZigMoonT | Дата: Четверг, 09 Января 2020, 01:27 | Сообщение # 4 | Тема: Не работает триггер |
был не раз
Сейчас нет на сайте
| drcrack, все понял, спасибо!)
|
|
| |
ZigMoonT | Дата: Среда, 08 Января 2020, 10:50 | Сообщение # 5 | Тема: Не работает триггер |
был не раз
Сейчас нет на сайте
| drcrack, я тогда ставил, static тоже пробовал, все равно не работает.
Добавлено (08 Января 2020, 10:57) --------------------------------------------- drcrack, странности происходят, короче скрипт из-за чего-то тригерится только на Layer Ground
Сообщение отредактировал ZigMoonT - Среда, 08 Января 2020, 10:57 |
|
| |
ZigMoonT | Дата: Среда, 08 Января 2020, 10:37 | Сообщение # 6 | Тема: Не работает триггер |
был не раз
Сейчас нет на сайте
| drcrack, в общем, поставил rb2d объект упал на платформу, после чего уровень перезагрузился
|
|
| |
ZigMoonT | Дата: Среда, 08 Января 2020, 10:09 | Сообщение # 7 | Тема: Не работает триггер |
был не раз
Сейчас нет на сайте
| Доброе утро, буду очень благодарен за помощь в данном вопросе. В общем, написал скрипт для перезагрузки уровня:
Код using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement;
public class RestartZone : MonoBehaviour { void OnTriggerEnter2D(Collider2D col) { SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); } }
Кинул скрипт на объект для теста, а толку ноль. Последние 30 минут сижу ломаю голову, в других проектах было все нормально с триггерами.
Сообщение отредактировал ZigMoonT - Четверг, 09 Января 2020, 01:28 |
|
| |
ZigMoonT | Дата: Понедельник, 28 Октября 2019, 18:17 | Сообщение # 8 | Тема: Экспорт анимации из Photoshop в Unity |
был не раз
Сейчас нет на сайте
| Dymkens, спасибо, вчера по этому тутору разобрался))
|
|
| |
ZigMoonT | Дата: Понедельник, 28 Октября 2019, 00:52 | Сообщение # 9 | Тема: Экспорт анимации из Photoshop в Unity |
был не раз
Сейчас нет на сайте
| Всем привет, в фотошопе нарисовал пиксельную анимацию бега, но к сожалению возникли проблемы с экспортом в Unity. Буду очень признателен за помощь.
|
|
| |
ZigMoonT | Дата: Пятница, 11 Октября 2019, 00:12 | Сообщение # 10 | Тема: Проверка платформы под ногами при прыжке |
был не раз
Сейчас нет на сайте
| InsaneSystems, перекопал кучи инфы в инете и все таки написал данный скрипт. Это для тех кто ищет решение данной проблемы (не забудьте RigidBody2D и BoxCollider).
Код public class ControllerCharacter : MonoBehaviour { public float speed; public float jumpForce; private float moveInput;
private Rigidbody2D rb;
private bool facingRight = true;
private bool isGrounded; public Transform groundedCheck; public float checkRadius; public LayerMask whatIsGround;
private int extraJumps; public int extraJumpsValue;
private void Start() { extraJumps = extraJumpsValue; rb = GetComponent<Rigidbody2D>(); }
private void FixedUpdate() { isGrounded = Physics2D.OverlapCircle(groundedCheck.position, checkRadius, whatIsGround);
moveInput = Input.GetAxis("Horizontal"); rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
if (facingRight == false && moveInput > 0) { Flip(); } else if (facingRight == true && moveInput < 0) { Flip(); } }
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; }
}
void Flip() { facingRight = !facingRight; Vector3 Scaler = transform.localScale; Scaler.x *= -1; transform.localScale = Scaler; } }
Сообщение отредактировал ZigMoonT - Пятница, 11 Октября 2019, 00:20 |
|
| |
ZigMoonT | Дата: Четверг, 10 Октября 2019, 21:42 | Сообщение # 11 | Тема: Проверка платформы под ногами при прыжке |
был не раз
Сейчас нет на сайте
| Добрый день, подскажите как проверить, что персонаж находится на платформе, когда он прыгает(без этой проверки персонаж отталкивается от воздуха).
Код using UnityEngine;
public class RigidBodyHero : MonoBehaviour {
Rigidbody2D rb;
void Start() { rb = GetComponent<Rigidbody2D>(); }
void Update() { if (Input.GetKeyDown (KeyCode.Space)) { Jump(); } }
void FixedUpdate() { rb.velocity = new Vector2 (Input.GetAxis("Horizontal") * 12f, rb.velocity.y); }
void Jump() { rb.AddForce(transform.up * 7f, ForceMode2D.Impulse); } }
|
|
| |
ZigMoonT | Дата: Пятница, 04 Октября 2019, 21:26 | Сообщение # 12 | Тема: Очень черные тени у объекта |
был не раз
Сейчас нет на сайте
| drcrack, спасибо, дружище!
|
|
| |
ZigMoonT | Дата: Пятница, 04 Октября 2019, 20:43 | Сообщение # 13 | Тема: Очень черные тени у объекта |
был не раз
Сейчас нет на сайте
| Привет! В Unity я создал новую сцену где поставил обычный Directional Light, как бы я не крутил свет, тень все равно очень черная, на Sample Scene все нормально, а на новой все печально.
Сообщение отредактировал ZigMoonT - Пятница, 04 Октября 2019, 21:26 |
|
| |
ZigMoonT | Дата: Четверг, 03 Октября 2019, 19:58 | Сообщение # 14 | Тема: Шейдеры и другие настройки палитры объекта нельзя изменить |
был не раз
Сейчас нет на сайте
| drcrack, огромное спасибо, дружище! Всего тебе самого-самого!
Сообщение отредактировал ZigMoonT - Четверг, 03 Октября 2019, 19:59 |
|
| |
ZigMoonT | Дата: Четверг, 03 Октября 2019, 19:12 | Сообщение # 15 | Тема: Шейдеры и другие настройки палитры объекта нельзя изменить |
был не раз
Сейчас нет на сайте
| Здравствуйте, 4 день подряд сталкиваюсь с этой проблемой, честно говоря уже выбешивает, все объекты после экспорта в Unity становятся очень бледными (и в редакторе моделей приходится делать совсем яркими и цветастыми, чтобы Unity отображал именно тот цвет, который нужно). Как я думаю - это можно исправить только с помощью шейдеров. Программа в которой создаю объекты MagicaVoxel.
Сообщение отредактировал ZigMoonT - Четверг, 03 Октября 2019, 19:59 |
|
| |
ZigMoonT | Дата: Четверг, 03 Октября 2019, 00:34 | Сообщение # 16 | Тема: Стрелки передвижения находятся далеко от объекта |
был не раз
Сейчас нет на сайте
| DivES, видимо там он не стоял, завтра на "трезвую" голову буду решать с MagicaVoxel. Ну а тебе, спасибо, что пытался помочь - это заслуживает почета и уважения.
Сообщение отредактировал ZigMoonT - Четверг, 03 Октября 2019, 00:44 |
|
| |
ZigMoonT | Дата: Четверг, 03 Октября 2019, 00:28 | Сообщение # 17 | Тема: Стрелки передвижения находятся далеко от объекта |
был не раз
Сейчас нет на сайте
| DivES, ой сорри . Я на скорую руку сделал скрин и случайно поменял не те значения, но тоже не работает, он смещает Box Collider на место центра(картинка 1). Но решение есть, нашел все таки. Нужно создать пустой объект и поместить как дочернюю модель(2 картинка) и тогда будет так, как должно быть. Еще одним из решений является изменение Pivot в редакторе (в котором делаешь 3D модель), тогда не придется создавать кучу материнских объектов. 1. 2.
Сообщение отредактировал ZigMoonT - Четверг, 03 Октября 2019, 00:28 |
|
| |
ZigMoonT | Дата: Четверг, 03 Октября 2019, 00:06 | Сообщение # 18 | Тема: Стрелки передвижения находятся далеко от объекта |
был не раз
Сейчас нет на сайте
| Спасибо за навигацию на сайте, теперь буду знать как нормально прикрепить фото. Выставил к сожалению, нет. Box Collider становится на место того самозванного центра. Сейчас попробую поковыряться в MagicaVoxel, вероятно там какие-то проблемы.
|
|
| |
ZigMoonT | Дата: Среда, 02 Октября 2019, 23:23 | Сообщение # 19 | Тема: Стрелки передвижения находятся далеко от объекта |
был не раз
Сейчас нет на сайте
| DivES, действительно центр смещен , но не из-за моего сдвига (картинка 1 (к сожалению)). Выгружая объект у него сразу есть такой центр (картинка 2), хотя в MagicaVoxel модель имеет четкую грань прямо в притык(картинка 3). 1. http://s1.uploadpics.ru/images/WJjYssvrMB.png 2. http://s1.uploadpics.ru/images/Wy7Dj2wSMr.png 3. http://s1.uploadpics.ru/images/Wk4t4TDHfH.png
|
|
| |
ZigMoonT | Дата: Среда, 02 Октября 2019, 22:32 | Сообщение # 20 | Тема: Стрелки передвижения находятся далеко от объекта |
был не раз
Сейчас нет на сайте
| Добрый вечер, я начинающий разработчик и на ранних этапах возникают трудности. С одной из таких я столкнулся прямо сейчас, буду благодарен за любую помощь, ну давайте ближе к делу. На фото видно, что положение стрелок управления ниже чем сам объект, при этом все объекты которые я делал вручную имеют такую проблему. Вместе с этим источник звука располагается вместе со стрелками. Фото с проблемой: http://s1.uploadpics.ru/images/ZkwUkrvrGB.png http://s1.uploadpics.ru/images/WkApGSDrMr.png
Сообщение отредактировал ZigMoonT - Четверг, 03 Октября 2019, 00:56 |
|
| |
|