Автор: (Kevin Lindeman) Перевод: (Avatarchik)
Описание:
Этот набор скриптов отправит имя и счет игрока на сервер где они сохранятся в MySQL Database, и затем загрузятся в игру и покажутся в GUI Text.
Шаг 1: Создание первой базы данных в MySQL.
Создаем новую базу данных в MySQL (Я использую phpMyAdmin).
Теперь перейдите в эту базу данных и нажмите на вкладку SQL.
Теперь вставьте этот SQL запрос в окне и нажмите на кнопку Go.
SQL – score.sql
CREATE TABLE `scores`(
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` varchar(15) NOT NULL DEFAULT ‘anonymous’,
`score` int(10)UNSIGNED NOT NULL DEFAULT ‘0′
)
TYPE=MyISAM;
Все наша база готова.
Шаг 2: Создание php скриптов
Отредактируйте эти скрипты, чтобы они работали с вашим MySQL сервером , тоесть надо изменить имя пользователя и пароль, база данных.Переменные name score не нужно редактировать, если только вы не редактировали Запрос SQL в шаге 1.
PHP – addscore.php
Этот скрипт будет принимать имя и очки от HSController.js, и добавляет их в базу данных MySQL.
<?php $db = mysql_connect(‘mysql_host‘, ‘mysql_user‘, ‘mysql_password‘) or die(‘Could not connect: ‘ . mysql_error());
mysql_select_db(‘my_database‘) or die(‘Could not select database‘);
$name = mysql_real_escape_string($_GET['name'], $db);
$score = mysql_real_escape_string($_GET['score'], $db);
$hash = $_GET['hash']; $secretKey=”mySecretKey“;
$real_hash = md5($name . $score . $secretKey);
if($real_hash == $hash) {
$query = “insert into scores values (NULL, ‘$name’, ‘$score’);”;
$result = mysql_query($query) or die(‘Query failed: ‘ . mysql_error());
}
?>
PHP – display.php
Этот сценарий будет выводить имя и очки из базы данных MySQL и выводить их на вашей WEB странице.
<?php $database = mysql_connect(‘mysql_host‘, ‘mysql_user‘, ‘mysql_password‘) or die(‘Could not connect: ‘ . mysql_error());
mysql_select_db(‘my_database‘) or die(‘Could not select database‘);
$query = “SELECT * FROM `scores` ORDER by `score` DESC LIMIT 5“;
$result = mysql_query($query) or die(‘Query failed: ‘ . mysql_error());
$num_results = mysql_num_rows($result);
for($i = 0; $i < $num_results; $i++)
{
$row = mysql_fetch_array($result);
echo $row['name'] . “\t” . $row['score'] . “\n”;
}
?>
Загрузите эти два файла где угодно на вашем сайте.Но если нету сайта то можно установить Denwer в нем все включено за пару кликов мышки можно поставить сервер на своем компе.
Шаг 3: Создаём скрипт на Unity с именем HSController
И так создаем GameObject => Create Other => GUI Text. Теперь создаем пустой скрипт в панели Project => Create => JavaScript.Открываем его и копируем весь код которы находится ниже. Вы также должны добавить в проэкт MD5 скрипт который находится в проекте смотри в конец статьи.
JavaScript – HSController.js
private var secretKey=”mySecretKey“;
var addScoreUrl=”http://www.ava.ru/addscore.php“;//Скрипт для добавления очков на сайт.
var highscoreUrl=”http://www.ava.ru/display.php“;//Скрипт для отображения очков на сайте.
function Start() {
//postScore(“Ivan”, 564) ;//Функция которая дабавляет игрока с именем Ivan и количеством очкрв в размере 564 в базу данных MySql).
getScores();//Функция которая показывает очки в твоей игре (а берет она значения с бази данных MySql).
}
function postScore(name, score) {
var hash=Md5.Md5Sum(name + score + secretKey);
var highscore_url = addScoreUrl + “name=” + WWW.EscapeURL(name) + “&score=” + score + “&hash=” + hash;
hs_post = WWW(highscore_url);
yield hs_post; if(hs_post.error)
{
print(“There was an error posting the high score: ” + hs_post.error);
}
}
function getScores() {
gameObject.guiText.text = “Loading Scores“;
hs_get = WWW(highscoreUrl);
yield hs_get; if(hs_get.error)
{
print(“There was an error getting the high score: ” + hs_get.error);
} else {
gameObject.guiText.text = hs_get.data;
}
Вот и все
Скачать файлы для этого урока:
PHP script:Скачать
UnityProject:Скачать
2 комментария на «Рекорды твоей игры на твоем сайте»
Ваш отзыв
Вы должны войти, чтобы оставлять комментарии.
23 Дек 2013 в 14:56
lewisohn@dora.progandist” rel=”nofollow”>.…
спс….
26 Авг 2014 в 9:29
intentional@conway.blast” rel=”nofollow”>.…
благодарствую!!…