Ошибка загрузки позиции игрока Unity - PullRequest
0 голосов
/ 04 июля 2018

Прежде всего, я не уверен, что это правильное место для публикации этой темы. Я использую XAMPP и MYSQL для создания своей базы данных, все работает хорошо, но когда я закрываю игру и пытаюсь загрузить последнюю позицию, игрок просто телепортируется к исходной точке.

C # Код на единицу:

Скрипт Dataloader

using UnityEngine;
using System.Collections;

public class DataLoader : MonoBehaviour {
    public int playerxd;
    public int playeryd;
    public int playerzd;
    public string[] pos;
    IEnumerator Start(){

        WWW posData = new WWW("http://localhost/BegoneBD/DataPos.php");
        yield return posData;
        string posDataString = posData.text;
        print (posDataString);
        pos = posDataString.Split(';');
        print(GetDataValue(pos[0], "x:"));
        print(GetDataValue(pos[0], "y:"));
        print(GetDataValue(pos[0], "z:"));
    }

    string GetDataValue(string data, string index)
    {
        string value = data.Substring(data.IndexOf(index) + index.Length);
        if (value.Contains("|")) value = value.Remove(value.IndexOf("|"));
        playerxd = System.Convert.ToInt32(value);
        return value;
    }
    string GetDataValue2(string data, string index)
    {
        string value = data.Substring(data.IndexOf(index) + index.Length);
        if (value.Contains("|")) value = value.Remove(value.IndexOf("|"));
        playeryd = System.Convert.ToInt32(value);
        return value;
    }
    string GetDataValue3(string data, string index)
    {
        string value = data.Substring(data.IndexOf(index) + index.Length);
        if (value.Contains("|")) value = value.Remove(value.IndexOf("|"));
        playerzd = System.Convert.ToInt32(value);
        return value;
    }

}

Сохранить скрипт

public class Save : MonoBehaviour {
    public string[] pos;
    bool teste;
    float playerx;
    float playery;
    float playerz;
    int inputplayerx;
    int inputplayery;
    int inputplayerz;
    string CreateUserUrl = "http://localhost/BegoneBD/InsertPos.php";
    public void SavePosition()
    {
        playerx = transform.position.x;
        playery = transform.position.y;
        playerz = transform.position.z;
        inputplayerx = (int)playerx;
        inputplayery = (int)playery;
        inputplayerz = (int)playerz;
        CreatePos(inputplayerx, inputplayery, inputplayerz);
    }
    public void CreatePos(int playerx1, int playery1, int playerz1)
    {
        WWWForm form = new WWWForm();
        form.AddField("playerxpost", playerx1);
        form.AddField("playerypost", playery1);
        form.AddField("playerzpost", playerz1);
        WWW www = new WWW(CreateUserUrl, form);
    }
    public void LoadPosition()
    {
        DataLoader f = new DataLoader();
        f.playerxd = (int)playerx;
        f.playeryd = (int)playery;
        f.playerzd = (int)playerz;
        transform.position = new Vector3(playerx, playery, playerz);
    }
    public void CursorSaveOn()
    {
            Cursor.visible = true;

    }
    public void CursorSaveOff()
    {
        Cursor.visible = false;

    }
}

PHP-код для связи с базой данных: Datapos.php

<?php
$servername = "localhost";
$username =  "root";
$password = "";
$dbName = "begonebd";

//Make Connection
$conn = new mysqli($servername, $username, $password, $dbName);
//Check Connection
if(!$conn){
    die("Connection Failed. ". mysqli_connect_error());
}

$sql = "SELECT id, x, y, z FROM playerposition";
$result = mysqli_query($conn ,$sql);


if(mysqli_num_rows($result) > 0){
    //show data for each row
    while($row = mysqli_fetch_assoc($result)){
        echo "id:".$row['id'] . "|x:".$row['x']. "|y:".$row['y']. "|z:".$row['z'] . "<br>";
    }
}

Insertpos.php

<?php
$servername = "localhost";
$username =  "root";
$password = "";
$dbName = "begonebd";
$x = "-240";
$y = "2";
$z = "-247";

$x = $_POST["playerxpost"];
$y = $_POST["playerypost"];
$z = $_POST["playerzpost"];
Make Connection
$conn = new mysqli($servername, $username, $password, $dbName);
Check Connection
if(!$conn){
    die("Connection Failed. ". mysqli_connect_error());
}
else echo("Connection Success");

$sql = "SELECT id, x, y, z FROM playerposition";
$result = mysqli_query($conn ,$sql);


$sql = "INSERT INTO playerposition (x, y, z)
        VALUES ('".$x."','".$y."','".$z."')";
$result = mysqli_query($conn ,$sql);

if(!result) echo "there was an error";
else echo "Everything ok.";

?>

Заранее спасибо, это действительно важно для меня, так как это школьный проект, и я не могу сделать презентацию, если база данных не работает должным образом. -

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...