Oracleデータベースをデータストレージとして使用し、接続文字列をプロファイルに書き込みます. <?xml version="1.0"?>
<!--
ASP.NET ,
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="connstr" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=orcl)));User ID=userid;Password=pwd"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="Oracle.DataAccess, Version=1.102.3.0, Culture=neutral, PublicKeyToken=89B483F429C47342"/></assemblies></compilation>
</system.web>
</configuration>
は*を呼び出している.unity 3 dのHTMLページには、<script type="text/javascript" language="javascript">
<!--
//initializing the WebPlayer
var u = new UnityObject2();
u.initPlugin(jQuery("#unityPlayer")[0], "Release.unity3d");
// Unity SQL
function ProcessSQL(arg) {
$.post("HandleSQL.ashx", //
{sql: arg }, // SQL
function (msg) {// ,msg
//alert(msg);
u.getUnity().SendMessage("Manager", "PushURL", msg); // Unity PushURL , msg Unity
}
);
}
-->
</script>
というコードが追加されています.
Unityシーンでは、バックグラウンド処理コードHandleSQLを呼び出すページ上のProcessSQLメソッドが呼び出される.ashxは、シーンから伝わるsql文を処理します.<%@ WebHandler Language="C#" Class="HandleSQL" %>
using System;
using System.Web;
using System.Configuration;
using Oracle.DataAccess.Client;
public class HandleSQL : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
GetPath(context.Request["sql"]);// --SQL
}
public bool IsReusable {
get {
return false;
}
}
public void GetPath(string sql) {
string connstr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
OracleConnection conn = new OracleConnection(connstr);
try
{
conn.Open();
OracleCommand cmd = new OracleCommand(sql, conn);
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
HttpContext.Current.Response.Write(dr[0]);
}
}
catch (Exception ee) {
HttpContext.Current.Response.Write(ee);
}
conn.Close();
}
}
バックグラウンドコード処理が完了すると、htmlページで実行に成功した処理関数を呼び出し、返された結果をUnityシーンのManagerオブジェクトに付随するPushURLメソッドに渡す.