Суббота, 17 Апреля 2021, 19:39

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » Joyce [7]
Результаты поиска
JoyceДата: Четверг, 27 Сентября 2018, 18:13 | Сообщение # 1 | Тема: Создание или нахождение комнаты в Unity Match Maker.
был не раз
Сейчас нет на сайте
Здравствуйте. Уже неделю пробую сделать так, чтобы по нажатию кнопки играть в Unity(С Match Maker) создавался матч, если других нету, или игрок присоединялся к существующему матчу, если он есть. Попытки не увенчались успехом, поэтому потеряв надежду я обращаюсь сюда. В срипте есть 2 public void`а, один создает матч, другой подключается к существуещему, если он есть, но они вешаются на разные кнопки, а мне надо чтобы было на одной. И можно ли повесить сразу эти два public void`а на одну кнопку и они будут работать так, как мне надо , или рандомно, или будеть выполняться только первый public void, который висит ? Сам скрипт:
Код
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Networking;
using UnityEngine.Networking.Match;
using UnityEngine;
using UnityEngine.UI;

public class MatchMakerLobby : NetworkBehaviour
{
    string matchName;
    public GameObject match;
    public Canvas canv;
    public Transform tochka;
    GameObject matchH;
    string matchFind;

    void Start()
    {
        NetworkManager.singleton.StartMatchMaker();
        string matchName = GameObject.Find("InputFieldNameMatch").transform.Find("Text").GetComponent<Text>().text;
        string matchFind = GameObject.Find("InputFieldNameMatch").transform.Find("Text").GetComponent<Text>().text;
    }

    public void CreateInternetMatch(string matchName)
    {
        NetworkManager.singleton.matchMaker.CreateMatch(matchName, 4, true, "", "", "", 0, 0, OnInternetMatchCreate);

    }

    private void OnInternetMatchCreate(bool success, string extendedInfo, MatchInfo matchInfo)
    {
        if (success)
        {
            Debug.Log("Create match succeeded");

            MatchInfo hostInfo = matchInfo;
            NetworkServer.Listen(hostInfo, 9000);

            NetworkManager.singleton.StartHost(hostInfo);

        }
        else
        {
            Debug.LogError("Create match failed");
        }
    }

    public void FindInternetMatch(string matchName)
    {
            NetworkManager.singleton.matchMaker.ListMatches(0, 10, matchName, true, 0, 0, OnInternetMatchList);
    }

    private void OnInternetMatchList(bool success, string extendedInfo, List<MatchInfoSnapshot> matches)
    {
        if (success)
        {
            if (matches.Count != 0)
            {
                NetworkManager.singleton.matchMaker.JoinMatch(matches[matches.Count - 1].networkId, "", "", "", 0, 0, OnJoinInternetMatch);
            }
            else
            {
                Debug.Log("No matches in requested room!");
            }
        }
        else
        {
            Debug.LogError("Couldn't connect to match maker");
        }
    }

    private void OnJoinInternetMatch(bool success, string extendedInfo, MatchInfo matchInfo)
    {
        if (success)
        {

            MatchInfo hostInfo = matchInfo;
            NetworkManager.singleton.StartClient(hostInfo);
        }
        else
        {
            Debug.LogError("Join match failed");
        }
    }
}
JoyceДата: Вторник, 10 Июля 2018, 14:20 | Сообщение # 2 | Тема: Совмещения частей скриптов.
был не раз
Сейчас нет на сайте
Спасибо)
JoyceДата: Вторник, 10 Июля 2018, 13:04 | Сообщение # 3 | Тема: Совмещения частей скриптов.
был не раз
Сейчас нет на сайте
Цитата seaman ()
Естественно не двигается - Вы же его не двигаете, а сам собой он двигаться не будет...

Хм...А как его тогда двигать ?
JoyceДата: Вторник, 10 Июля 2018, 12:25 | Сообщение # 4 | Тема: Совмещения частей скриптов.
был не раз
Сейчас нет на сайте
Здравствуйте. Пытаюсь сделать прыжок для персонаж, на котором висит Character Controller (Без Rigidbody & Capsule Colider). Так вот. Написан скрипт для Character Controller, где описана и физика и ходьба и поворот по оси X (Ось Y повешена на персональную камеру персонажа). Написан скрипт по учебнику "Unity в действии" и работает отлично, но не хватает прыжка. Начал искать как сделать прыжок для CC и наткнулся на это видео: Прыжок CharCont. и решил выделить все части скрипта связанные с прыжком и добавить в свой. Добавил его и сделал только velocityY публичной (чтобы информация была). Когда я запускаю игру с этим скриптом, персонаж также отлично двигается, поворачивается, но при нажатии кнопки "Space" персонаж не хочет прыгать, но в публичной переменной velocityY выводятся цифры, которые зависят от цифр jumpHeight:
Какое бы значение я для jumpHeight не ставил, персонаж никак не прыгнет. Сам скрипт:
JoyceДата: Вторник, 26 Июня 2018, 20:01 | Сообщение # 5 | Тема: Персонаж поворачивается не по нужной оси.
был не раз
Сейчас нет на сайте
Переключал Pivot и Local, не спасает. Модель из Blendera, импортирована с "Y up" и "X forward".

Добавлено (26 Июня 2018, 19:33)
---------------------------------------------
Вообщем, я можно сказать решил проблему) Там просто в оси "Mouse Y" Нужно было поменять _rotationX местами в (). Но тем проблема в том, что он наклоняется вверх или вниз и больше не хочет двигаться.

Добавлено (26 Июня 2018, 20:01)
---------------------------------------------
Все, сделал все. Спасибо всем)
Вот сам скрипт:

Код

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MouseLook : MonoBehaviour {
    public enum RotationAxes {
  MouseXAndY = 0,
  MouseX = 1,
  MouseY = 2
    }
    public RotationAxes axes = RotationAxes.MouseXAndY;

    public float sensitivityHor = 11f;
    public float sensitivityVert = 11f;

    public float minimumVert = -45f;
    public float maximumVert = 45f;

    private float _rotationX = 0;

    void Start () {

    }

    void Update () {
  if (axes == RotationAxes.MouseX) {
   transform.Rotate (0, Input.GetAxis ("Mouse X") * sensitivityHor, 0);
  }
  else if (axes == RotationAxes.MouseY) {
   _rotationX -= Input.GetAxis ("Mouse Y") * sensitivityVert;

   _rotationX = Mathf.Clamp (_rotationX, minimumVert, maximumVert);

   float rotationY = transform.localEulerAngles.y;

   transform.localEulerAngles = new Vector3 (0 , rotationY, _rotationX);
  }
  else {
  }
    }
}


Сообщение отредактировал Joyce - Вторник, 26 Июня 2018, 19:03
JoyceДата: Понедельник, 25 Июня 2018, 16:22 | Сообщение # 6 | Тема: Персонаж поворачивается не по нужной оси.
был не раз
Сейчас нет на сайте
А чего тут не понятного ? У меня есть 2 Оси, по которым вращается персонаж за мышкой - это "Mouse X (Влево и вправо)" и "Mouse Y (Вниз, Вверх)" Но при выборе "Mouse Y" персонаж не наклоняется Вверх-вниз, а наклоняется влево и вправо. Пытался повернуть персонажа, попытаться поменять оси в самом скрипте, но ничего не помогло.
JoyceДата: Понедельник, 25 Июня 2018, 10:01 | Сообщение # 7 | Тема: Персонаж поворачивается не по нужной оси.
был не раз
Сейчас нет на сайте
Делаю игру для фана на Unity. Вообщем. Персонаж не поворачивается по нужной оси. То есть, есть 2 "оси" в скрипте - это "Mouse X (Вправо,влево)" и "Mouse Y (Вверх, вниз)". Mouse X поворачивает модель персонажа как нужно, но Mouse Y вместо того, чтобы наклонять персонажа вниз и вверх, она наклоняет его вправо и влево. Если нужно будет видео, я запишу. Пробовал загружать модель заново, перемещать ее, но ничего не помогло.
Скрипт:
Код

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MouseLook : MonoBehaviour {
  public enum RotationAxes {
    MouseXAndY = 0,
    MouseX = 1,
    MouseY = 2
  }
  public RotationAxes axes = RotationAxes.MouseXAndY;

  public float sensitivityHor = 11f;
  public float sensitivityVert = 11f;

  public float minimumVert = -45f;
  public float maximumVert = 45f;

  private float _rotationX = 0;

  void Start () {
    
  }

  void Update () {
    if (axes == RotationAxes.MouseX) {
      transform.Rotate (0, Input.GetAxis ("Mouse X") * sensitivityHor, 0);
    }
    else if (axes == RotationAxes.MouseY) {
      _rotationX -= Input.GetAxis ("Mouse Y") * sensitivityVert;

      _rotationX = Mathf.Clamp (_rotationX, minimumVert, maximumVert);

      float rotationY = transform.localEulerAngles.y;

      transform.localEulerAngles = new Vector3 (_rotationX, rotationY, 0);
    }
    else {
    }
  }
}
Форум игроделов » Записи участника » Joyce [7]
  • Страница 1 из 1
  • 1
Поиск:

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