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 = "";
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;

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

Creates a WWW request with the given URL.

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

Class Functions
Encodes string into an URL-friendly format.
Decodes string from an URL-friendly format.
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 = "";
   WWW www = new WWW(highscore_url);

   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);

   IEnumerator WaitForRequest(WWW www)
       yield return www;

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

You can Download Script from Here

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