Вторник, 03 Декабря 2024, 22:13

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
alborov011Дата: Воскресенье, 10 Ноября 2019, 15:21 | Сообщение # 1 | Тема: Вопрос-Ответ - мини вопросы по созданию игр
уже был
Сейчас нет на сайте
я делаю игру для двоих на юнити. два игрока играют на одной клаве, у одного управление стрелками, у другого A, D, W.
сделал два скрипта на каждого игрока. различие только в кнопках управления.
но, когда я пытаюсь управлять сразу двумя игроками они как будто связаны и не могут ходить, по одному все хорошо работает.
в Юнити я новичек.
как это исправить ?


Приветик
alborov011Дата: Воскресенье, 10 Ноября 2019, 13:39 | Сообщение # 2 | Тема: Игра для двоих на юнити
уже был
Сейчас нет на сайте
я делаю игру для двоих на юнити. два игрока играют на одной клаве, у одного управление стрелками, у другого A, D, W.
сделал два скрипта на каждого игрока. различие только в кнопках управления.
но, когда я пытаюсь управлять сразу двумя игроками они как будто связаны и не могут ходить, по одному все хорошо работает.
в Юнити я новичок.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Person1 : MonoBehaviour
{
[SerializeField]
private float speed = 15.0f;
[SerializeField]
private float jumpForce = 15.0f;
[SerializeField]
private int lives = 5;

private bool isgrounded = false;

private Rigidbody2D rb;
private Animator animator;

private CharState State
{
get { return (CharState)animator.GetInteger("State"); }
set { animator.SetInteger("State", (int)value); }
}

private void Awake()
{
rb = GetComponent<Rigidbody2D>();
animator = GetComponent<Animator>();
}

private void FixedUpdate()
{
ChekGround();
}

private void Update()
{
if (isgrounded) State = CharState.Idle;
if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.D)) Run();
if (Input.GetKeyDown(KeyCode.W) && isgrounded) Jump();

}

private void Run()
{
Vector3 direction = transform.right * Input.GetAxis("Horizontal");
transform.position = Vector3.MoveTowards(transform.position, transform.position + direction, speed * Time.deltaTime);
if (isgrounded) State = CharState.Run;

}

private void Jump()
{
rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);

}

private void ChekGround()
{
Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, 0.9f);
isgrounded = colliders.Length > 1;
if (!isgrounded) State = CharState.Jump;
}

}

public enum CharState
{
Idle,
Run,
Jump,
}


Приветик

Сообщение отредактировал alborov011 - Воскресенье, 10 Ноября 2019, 17:27
  • Страница 1 из 1
  • 1
Поиск:

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