Este tutorial exemplifica como se pode registar informação online gerada por aplicações desenvolvidas pelo Unity3d.
O exemplo aqui apresentado é básico apenas serve de ponto de partida de um projeto mais elaborado.
Necessário:
Um servidor http Apache com suporte Php.
Para testes Usei o Xampp para Windows e arranquei com o serviço de Apache já com o suporte Php
Com base no código disponível no forum da Unity foi feito o seguinte:
- Criar um GameObject vazio no senário do Unity3D
- Pelo Inspector desse objeto Adicionar um componente do tipo script C# com o nome SaveOnline.cs
- Adicionar o seguinte conteúdo:
using UnityEngine;
using System.Collections;
public class SaveOnline : MonoBehaviour {
public string postDataURL = "http://IP_DO_SERVIDOR_ONLINE/save_player_data.php?"; //add a ? to your url
public string Playername;
public string Playerdata;
void Start()
{
Playername = "PlayerName";
Playerdata = "SomeData";
StartCoroutine(PostData(Playername,Playerdata));
StartCoroutine(PostData("111","aaa"));
StartCoroutine(PostData("222","bbb"));
}
IEnumerator PostData(string name, string data)
{
//This connects to a server side php script that will write the data
string post_url = postDataURL + "name=" + WWW.EscapeURL(name) + "&data=" + data ;
// Post the URL to the site and create a download object to get the result.
WWW data_post = new WWW(post_url);
yield return data_post; // Wait until the download is done
if (data_post.error != null)
{
print("There was an error saving data: " + data_post.error);
}
}
}
using System.Collections;
public class SaveOnline : MonoBehaviour {
public string postDataURL = "http://IP_DO_SERVIDOR_ONLINE/save_player_data.php?"; //add a ? to your url
public string Playername;
public string Playerdata;
void Start()
{
Playername = "PlayerName";
Playerdata = "SomeData";
StartCoroutine(PostData(Playername,Playerdata));
StartCoroutine(PostData("111","aaa"));
StartCoroutine(PostData("222","bbb"));
}
IEnumerator PostData(string name, string data)
{
//This connects to a server side php script that will write the data
string post_url = postDataURL + "name=" + WWW.EscapeURL(name) + "&data=" + data ;
// Post the URL to the site and create a download object to get the result.
WWW data_post = new WWW(post_url);
yield return data_post; // Wait until the download is done
if (data_post.error != null)
{
print("There was an error saving data: " + data_post.error);
}
}
}
- Do lado do servidor Xampp em C:\xampp\htdocs criar o ficheiro save_player_data.php
- Adicionar o conteúdo:
<?php
$name_to_save = $_GET["name"];
$data_to_save = $_GET["data"];
$myFile = $name_to_save . ".txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh,$name_to_save . "," . $data_to_save . ",");
fclose($fh);
?>
- E basta correr o programa para serem escritos 3 ficheiros com conteúdo no servidor
- Tem de se ter em conta a alteração do Url do servidor.
Referências:
https://www.apachefriends.org/pt_br/index.html
http://answers.unity3d.com/questions/984290/upload-txt-file-to-server-using-php.html
Sem comentários:
Enviar um comentário