Pages

Sunday, July 10, 2011

How To upload Score on WebServer

To Save score on WebServerWe require Basics of WWW

WWW Inherits from IDisposable  

Simple access to web pages.
This is a small utility module for retrieving the contents of URLs.
You start a download in the background by calling WWW(url) which returns a new WWW object.
You can inspect the isDone property to see if the download has completed or yield the download object to automatically wait until it is (without blocking the rest of the game).
Use it if you want to get some data from a web server for integration with a game such as highscore lists or calling home for some reason. There is also functionality to create textures from images downloaded from the web and to stream & load new web player data files.
The WWW class can be used to send both GET and POST requests to the server. The WWW class will use GET by default and POST if you supply a postData parameter.
See Also: WWWForm for a way to build valid form data for the postData parameter.
Note: http://, https:// and file:// protocols are supported on iPhone. ftp:// protocol support is limited to anonymous downloads only. Other protocols are not supported.
Note: The security sandbox present in web-player builds prevents you from accessing content not hosted the server where the webplayer is hosted.



// Get the latest webcam shot from outside "Friday's" in Times Square
var url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
function Start () {
// Start a download of the given URL
var www : WWW = new WWW (url);

// Wait for download to complete
yield www;

// assign texture
renderer.material.mainTexture = www.texture;
}

Variables
text
Returns the contents of the fetched web page as a string (Read Only).
bytes
Returns the contents of the fetched web page as a byte array (Read Only).
error
Returns an error message if there was an error during the download (Read Only).
texture
Returns a Texture2D generated from the downloaded data (Read Only).
movie
Returns a MovieTexture generated from the downloaded data (Read Only).
isDone
Is the download already finished? (Read Only)
progress
How far has the download progressed (Read Only).
uploadProgress
How far has the upload progressed (Read Only).
url
The URL of this WWW request (Read Only).
assetBundle
Streams an AssetBundle that can contain any kind of asset from the project folder.
threadPriority
Priority of AssetBundle decompression thread.

Constructors
WWW
Creates a WWW request with the given URL.

Functions
GetAudioClip
Returns a AudioClip generated from the downloaded data (Read Only).
LoadImageIntoTexture
Replaces the contents of an existing Texture2D with an image from the downloaded data.
LoadUnityWeb
Loads the new web player data file.

Class Functions
EscapeURL
Encodes string into an URL-friendly format.
UnEscapeURL
Decodes string from an URL-friendly format.
LoadFromCacheOrDownload
Loads an assetBundle from the cache, or downloads it, in case it is not cached.


For that We need To Define Two URL to Save Game Data like :

public class UploadScoreWebService : MonoBehaviour
{
 public string addScoreUrl="http://192.28.700.59:8008/Xyz/ScoreService";
 public string highscoreUrl = "http://localhost/game/display.php";
 public string highscore_url;
}
Now to Post Score we need 
public void postScore(string email, int score , string Name)
 {
 string url = "http://192.28.700.59:8008/Xyz/ScoreService";
 string highscore_url = addScoreUrl + "uemail=" + WWW.EscapeURL(email) + "&uscore=" + score + "&udatetime =" + cur_time + "&uname=" + Name;
 string highscore_url = "http://172.18.100.79:8088/ewave/ScoreService?act=AddScore&uname=chirag&uemail=chirag@ewaveinida.com&uscore=50&udatetime=24-JAN-2011%2011:00";
           
   WWW www = new WWW(highscore_url);
   StartCoroutine(WaitForRequest(www));

   WWWForm form = new WWWForm();
   form.AddField("uname", Name);
   form.AddField("uscore", score);
   form.AddField("udatetime", cur_time);
   form.AddField("uemail", email);
   Debug.Log("Request URL : " + highscore_url); 

   string highscore_url = addScoreUrl + "email=" + WWW.EscapeURL(email) + "&score=" + score + "time =" + cur_time + "name=" + Name;
   WWW hs_post = new WWW(highscore_url);
   Debug.Log("HighScore URL : " + highscore_url);
   WWW(highscore_url);

    }
   IEnumerator WaitForRequest(WWW www)
   {
     
       yield return www;

       // check for errors     
       if (www.error == null)
         {
           Debug.Log("WWW Ok! - result: " + www.data);
       } else {
           Debug.Log("WWW Error: "+ www.error);
        }
    }
}

You can Download Script from Here

--
Vivek P Shah
Game Developer in Unity3d and Cocos2d 
Skype : viveks2012

4 comments: