Четверг, 21 Ноября 2024, 20:17

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Результаты поиска
xxxlioДата: Четверг, 25 Октября 2018, 22:22 | Сообщение # 1 | Тема: Как проще всего создать мультиплеер на unity?
частый гость
Сейчас нет на сайте
Нужен простой мультиплеер. Играть буду только по локальной сети. На чем проще всего это реализовать? Пробовал через нетворкинг юнити, было много проблем. Может быть есть способ проще? Слышал делают через фатон или еще как то. Программирование знаю слабенько. Немного освоил C#.
xxxlioДата: Четверг, 07 Июня 2018, 19:43 | Сообщение # 2 | Тема: Как получить переменную с сайта (Хостинга)?
частый гость
Сейчас нет на сайте
А можно таким способом вывести целую страницу сайта? Например сделать окошко в игре и пряма с сайта выводить туда какие то новости?
xxxlioДата: Четверг, 07 Июня 2018, 17:00 | Сообщение # 3 | Тема: Преобразование переменной sring в float
частый гость
Сейчас нет на сайте
Цитата drcrack ()
чел, может эт, скачай самоучитель по c#, а?

Да, спасибо. Я так в принципе и делал, но запускал куратину в update и из за того, что она срабатывала чуть позже выдавало ошибку, теперь все исправил.

Где найти нормальный самоучитель, да еще и на русском. Вот учусь из обрывков инфы, написанной такими же новичками как и я :)
xxxlioДата: Четверг, 07 Июня 2018, 16:40 | Сообщение # 4 | Тема: Преобразование переменной sring в float
частый гость
Сейчас нет на сайте
Получил я переменную с числовым значением в виде строки
C#
var www = new WWW("http://localhost/game/2pers/x.txt");
while (!www.isDone) yield return null;
var x = www.text;

теперь у меня переменная x тапа string, как сделать из нее float?
Пробовал ват так:

C#
float x = float.Parse("10");

Но тут нужно сразу значение вписывать, а как вместо 10 вставить переменную?
Или есть другие способы преобразования?
xxxlioДата: Четверг, 07 Июня 2018, 13:10 | Сообщение # 5 | Тема: Как получить переменную с сайта (Хостинга)?
частый гость
Сейчас нет на сайте
А по строкам разве нельзя этот файл прочитать? Например

StreamReader streamReader = new StreamReader("save.txt"); // Открываем файл

while (!streamReader.EndOfStream) // Читаем строки пока они не закончатся
{
x = System.Convert.ToSingle(streamReader.ReadLine());
y = System.Convert.ToSingle(streamReader.ReadLine());
z = System.Convert.ToSingle(streamReader.ReadLine());
}
GameObject Player = (GameObject)Instantiate (player, new Vector3 (x, y, z), Quaternion.identity);

Но это подходит только если файл на компьютере.
xxxlioДата: Четверг, 07 Июня 2018, 12:52 | Сообщение # 6 | Тема: Как получить переменную с сайта (Хостинга)?
частый гость
Сейчас нет на сайте
Да, спасибо огромное. Последний вопрос и я отстану :)
В данном примере переменная name принимает значение первой строчки файла. А как получить несколько строчек? Например
первая name = www.text;
Вторая hp = ...
xxxlioДата: Четверг, 07 Июня 2018, 12:35 | Сообщение # 7 | Тема: Как прочитать файл с хостинга?
частый гость
Сейчас нет на сайте
Нормального ответа я так и не получил. Что мне еще делать?..
xxxlioДата: Четверг, 07 Июня 2018, 11:57 | Сообщение # 8 | Тема: Как прочитать файл с хостинга?
частый гость
Сейчас нет на сайте
Есть на хостинге http://localhost/game/name.txt файл в котором записана строка к примеру "Вася"
Как мне из C# в юнити подключиться к этому файлу и вывести в переменную чтобы переменная например name = "вася";?
xxxlioДата: Четверг, 07 Июня 2018, 11:57 | Сообщение # 9 | Тема: Как получить переменную с сайта (Хостинга)?
частый гость
Сейчас нет на сайте
Она на английском. Я не понимаю, вам трудно 2 строчки кода подсказать? Два дня уже бьюсь...
new WWW("http://gcup.ru/robots.txt"); - вот я подключился, как мне в переменную записать первую строчку из файла?
name =???
xxxlioДата: Четверг, 07 Июня 2018, 11:23 | Сообщение # 10 | Тема: Как получить переменную с сайта (Хостинга)?
частый гость
Сейчас нет на сайте
Цитата drcrack ()
прочитать его целиком с помощью new WWW()

Как? Знаю, что в txt лучше. Как прочитать файл в C#???
xxxlioДата: Среда, 06 Июня 2018, 20:02 | Сообщение # 11 | Тема: Как получить переменную с сайта (Хостинга)?
частый гость
Сейчас нет на сайте
Сильно упростил код, что бы вам было проще.
Есть такой код в юньки:

C#
using UnityEngine;
using System.Collections;

public class Zapis_v_BD : MonoBehaviour {

private string username = "Aleksey"; //Переменная для хранения имени
private string url = "http://localhost/game/connect.php"; //Переменная для хранения адреса

void Connect()
{
WWWForm form = new WWWForm(); //Создаём новую форму

form.AddField("username", username);

WWW connect = new WWW(url, form);

}

void Update() {


if(Input.GetKey(KeyCode.Space))

Connect();
}
}

При нажатии на пробел переменную username мы отправляем скрипту connect.php, который к примеру выглядит вот так:

PHP
<?php
$username = $_REQUEST['username'];

$text .= "$username
";

$file = fopen ("index.php", "w+");
fwrite ($file,$text);
fclose ($file);
?>

То есть просто записывает данную переменную в файл index.php

Теперь вопрос, как мне снова достать ее из файла index.php и получить ее в юнити?
К примеру в каком то другом скрипте на C#?

Добавлено через 3 минуты
Можно записать ее не как строку, а как переменную, получиться файл что то типа этого:

PHP
<?php
username = "Aleksey";
?>

Как мне теперь из юнити подключиться к данному файлу и получить переменную?
xxxlioДата: Среда, 06 Июня 2018, 14:10 | Сообщение # 12 | Тема: Запись переменной на хостинг и ее получение.
частый гость
Сейчас нет на сайте
Вот можно например в игре сделать файл и сохранять туда координаты персонажа:

if ( filename == "" ) filename = "F:\\UNITY\\Game\\save.txt";
StreamWriter sw = new StreamWriter(filename); // Создаем файл

sw.WriteLine(gameObject.transform.position.x); // Пишем координаты
sw.WriteLine(gameObject.transform.position.y);
sw.WriteLine(gameObject.transform.position.z);
sw.Close(); // Закрываем(сохраняем)

Для того, что бы потом можно было их загрузить:

StreamReader streamReader = new StreamReader("F:\\UNITY\\Game\\save.txt"); // Открываем файл
if(streamReader != null) {
while (!streamReader.EndOfStream) // Читаем строки пока они не закончатся
{
x = System.Convert.ToSingle(streamReader.ReadLine());
y = System.Convert.ToSingle(streamReader.ReadLine());
z = System.Convert.ToSingle(streamReader.ReadLine());
}
gameObject.transform.position = new Vector3(x, y, z);
streamReader.Close(); // Закрываем(сохраняем)
}

Теперь вопрос, можно ли в место адреса на компьютере или в игре (F:\\UNITY\\Game\\save.txt) Указать фал в интернете дав ему права для записи? Пробую указать к примеру сайт яндекса выдаёт такую ошибку:

DirectoryNotFoundException: Could not find a part of the path "F:\UNITY\Game\https:\yandex.ru\save3.txt".
System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/FileStream.cs:292)
System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share)
(wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
System.IO.File.OpenRead (System.String path) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/File.cs:363)
System.IO.StreamReader..ctor (System.String path, System.Text.Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/StreamReader.cs:167)
System.IO.StreamReader..ctor (System.String path)
(wrapper remoting-invoke-with-check) System.IO.StreamReader:.ctor (string)
Transform2player.Update () (at Assets/Scripts/Transform2player.cs:21)
Указывая неправильность адреса на компьютере (F:\UNITY\Game\https:\yandex.ru\save3.txt)

То есть, то что файл находиться в интернете, юнити даже не рассматривает.
Подскажите, может я не правильно открываю фал? И файл на сервере нужно открывать каким то другим способом? Если можно объясните чуть подробнее, не так давно начал изучать только C#
xxxlioДата: Воскресенье, 03 Июня 2018, 19:18 | Сообщение # 13 | Тема: Браузер на андроид в unity?
частый гость
Сейчас нет на сайте
Всем привет. Подскажите можно реализовать в unity (2d) браузер для андроид? В общем нужно такое приложение, при запуске которого открывается конкретный сайт в интернете. В принципе даже браузерная строка не нужна.
xxxlioДата: Воскресенье, 03 Июня 2018, 12:36 | Сообщение # 14 | Тема: Как сделать темноту в юнити
частый гость
Сейчас нет на сайте
Цитата bovalex ()
Ambient Light

Где найти Ambient Light?
xxxlioДата: Воскресенье, 03 Июня 2018, 11:59 | Сообщение # 15 | Тема: Как сделать темноту в юнити
частый гость
Сейчас нет на сайте
Запускаем сцену где нет ни одного источника света (после компиляции):
http://s1.uploadpics.ru/images/Wye0VBqNYm.jpg
Везде вот так вот светло, котя должен быть черный экран до включения какого либо источника света, например фонаря. Игра 3d. Как можно такое осуществить? У меня unity personal, слышал, что сделать темноту можно только в версии pro, так ли это?
xxxlioДата: Воскресенье, 03 Июня 2018, 11:41 | Сообщение # 16 | Тема: Освещение в игре - Unity
частый гость
Сейчас нет на сайте
Цитата drcrack ()
ambient light поставить черный цвет, ambient reflections поставить custom, выключить realtime gi и baked gi и будет темно

А где это все найти? Эти настройки для 3d игры? мне нужно 3d.
Пробовал в other settings включать fog и настраивать там, полной темноты можно добиться, но когда включаем источник света, все ровно темно..
xxxlioДата: Воскресенье, 03 Июня 2018, 10:16 | Сообщение # 17 | Тема: Освещение в игре - Unity
частый гость
Сейчас нет на сайте
После компиляции игры везде светло, даже на сценах где нет ни одного источника света. Свет как бы есть, но он особо ни на что не влияет. Проверял на разных режимах графики. Помню в старых версиях где то галочку нужно ставить, что бы было темно, а сейчас не найду. Кто знает, подскажите.
xxxlioДата: Вторник, 29 Мая 2018, 18:06 | Сообщение # 18 | Тема: Свет проходит сквозь стены
частый гость
Сейчас нет на сайте
Цитата drcrack ()
или выключено Cast Shadows в Mesh Renderer

Включен.
Цитата drcrack ()
возможно они односторонние?

Как понять односторонние? Стены сделаны из стандартного куба в unity, на куб кинул текстурку.

Добавлено (29 Мая 2018, 18:06)
---------------------------------------------
Всем спасибо. Разобрался. Нужно просто увеличить тень в Edit-Project Settings-Quality-Shadows-Shadow Distance

xxxlioДата: Вторник, 29 Мая 2018, 16:31 | Сообщение # 19 | Тема: Свет проходит сквозь стены
частый гость
Сейчас нет на сайте
Кто знает помогите. Все настройки перерыл, в интернете вся инфа старая. Вот закрытая комната, за ней источник света. То ли свет проходит сквозь стену, то ли отражается от пола и потолка, не пойму. Но в этой комнате должно быть темно. На источник света поставил Hard Shadows стало темнее, но свет все ровно как то попадает.
http://s1.uploadpics.ru/images/WklSp05xK7.jpg
xxxlioДата: Среда, 23 Мая 2018, 14:36 | Сообщение # 20 | Тема: Создание общих объектов в unity (мультиплеер).
частый гость
Сейчас нет на сайте
В общем так, делаю мультиплеер пока что через стандартный скрипт юнити Network.
На пустой объект на сцене добавил компоненты Network Manager И менюшку Network Manager HUD.
Игрока сделал прифабом и добавил компоненты Network Identity(local player) и Network Transform. Ну еще есть скрипт который отключает управление персонажем и камеру у не локального игрока. С этим проблем нет, каждый движется в своем направлении и каждый видит второго игрока.

Теперь, собственно вопрос. Если коротко то нужно одним игроком добавлять на сцену общий предмет. К примеру этот скрипт я закинул на игрока и при нажатии на "M" Должен появляться предмет из префаба на сцене и его должны видеть все игроки.

using UnityEngine;
using System.Collections;
using UnityEngine.Networking;

public class TestKub : NetworkBehaviour {

public GameObject Kub;

void SpawnObject(GameObject Kub)
{

GameObject go = GameObject.Instantiate(Kub); // серверную копию
NetworkServer.Spawn(go); // отправить сообщение спаун для клиентов

}


void Update () {


if (Input.GetKeyDown(KeyCode.M)) {


ClientScene.RegisterPrefab(Kub);

GameObject go = (GameObject)Instantiate(Kub, new Vector3 (500, 60, 500), Quaternion.identity);
NetworkServer.Spawn (go);

} } }

Получается следующее. Если М нажимает игрок который создаёт сервер, то все работает. А если это клиент (который подключился к серверу) то объект создается, но он виден только тому кто его создал. Как решить эту проблему. Может есть скрипт как передать команду серверу, а с него осуществить создание? Прбовал давать права клиенту вот так:
Player.GetComponent<NetworkIdentity>().AssignClientAuthority(this.GetComponent<NetworkIdentity>().connectionToClient);
Но все ровно ничего не выходит...
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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