當前位置:首頁 » 數據倉庫 » unity3d資料庫交互
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

unity3d資料庫交互

發布時間: 2022-08-16 08:40:34

『壹』 如何在Unity3d中實現和網頁數據的交互

1、unity向網頁發送數據的函數:Application.ExternalCall("SayHello",gameObject.name),這個函數將調用網頁中的SayHello函數,gameObject.name為傳遞的參數。 2、網頁向unity發送數據的函數:網頁中用GetUnity().SendMessage(message

『貳』 unity3d中與mysql資料庫連接成功後,並將資料庫信息用text顯示的代碼例子

既然連接成功了。就用SQL語句讀取資料庫中的內容。
然後設置label.text=你讀取的內容。

『叄』 如何進行Unity3D與Android消息傳遞

Unity3D和網頁數據交互的基本原理
簡介:
1、Unity3D的游戲引擎是和編輯器集成在一起的,所有它也是一個製作/開發平台。
2、Unity3D是使用JavaScript、C#作為核心腳本語言來驅動事個游戲引擎。
3、平台可以發布Exe執行文件或者打包為可供網頁調用的一個獨立的包文件。
4、用Unity3D製作的工程具有高度的可移植性,可以在PS xbox360 Android iPhone mac等系統上運行。
嵌入網頁:
1、用Unity3D實現嵌入網頁和Flash插入網頁原理完全一致,也是使用ActiveX控制項嵌入在網頁中。所以和Flash一樣,需要安裝一個播放器插件(小於3M)。

2、查看頁面源碼,可以看到如下嵌入部分:
<object id="UnityObject" classid="clsid:444785F1-DE89-4295-863A-D46C3A781394"width="600" height="450"codebase="http://webplayer.unity3d.com/download_webplayer/UnityWebPlayer.cab#version=2,0,0,0">
<param name="src" value="MyDataFile.unity3d" />
<embed id="UnityEmbed" src="MyDataFile.unity3d" width="600" height="450"type="application/vnd.unity" pluginspage="http://www.unity3d.com/unity-web-player-2.x" />
</object>
3、和Flash一樣,在瀏覽器中載入3D場景或者讀取時的圖標進度條都能進行自定義,也可以自定義是否激活是用右鍵菜單。

數據交互
1、在Unity3D中調用網頁js函數
如果我們在html中有腳本函數;則在u3d中我們可用使用Application.ExternalCall調用js函數,該方法只適合在Web3D環境下使用。該方法支持基本類型的傳遞和數組傳遞,任何類型都會轉換成字元串類型使用。
例子代碼:
Application.ExternalCall("SayHello","The game says hello!);//調用SayHello,傳遞一個字元串

2、在Unity3D中直接執行一段腳本代碼如:
Application.ExternalEval("if(document.location.host!='unity3d.com'){document.location='http://unity3d.com';}");

3、在js中調用Unity3D函數(傳遞消息等)
如果有Unity3D中有一段用JS寫的功能函數:
function MyFunction(param:String)
{
Debug.Log(param);
}
需要在JS中呼叫這個函數則可以這樣寫:
<script type="text/javascript" language="javascript">
SaySomethingToUnity(document.getElementById("UnityContent").SendMessage("MyObject","MyFunction","Hello fom a web page!"););
</script>
這里要注意的是MyObject代表Unity3D中的一個場景名稱為MyObject,MyFunction是調用的函數,最後一個字元為傳遞的參數。

與php,jsp等的表單數據交互
與php,jsp等的表單數據交互很可能會是今後用到的主要方式,原理是利用form表彰傳遞數據,下面以php為例來進行說明。
Unity3D可以實現向某個指定頁面發送表單數據然後在php中使用_POST獲取傳遞回來的表彰數據。比如:
<?php
$action = $_POST["myform_action"];//定義一個變數$action用來獲取頁面傳遞過來的表單數據
if($action!=""){
echo $action;//如果接收到了數據則列印出數據內容
}
?>
在Unity3D中我們發送數據的代碼如下:
var form = new WWWForm();//定義一個網頁表單
form.AddField("myform_action","Action1");//添加一個表彰欄位名稱為myform_action內容是action1
var download = new WWW("www.xxx.com/index.php",form);//發送表單數據到指定網址頁面
假如index.php執行的是資料庫/統計操作,我們就可以對傳遞的數據進行保存讀取或者其他操作了。

『肆』 unity3d net web 怎麼返回數據

Unity3D和網頁數據交互的基本原理
簡介:
1、Unity3D的游戲引擎是和編輯器集成在一起的,所有它也是一個製作/開發平台。
2、Unity3D是使用JavaScript、C#作為核心腳本語言來驅動事個游戲引擎。
3、平台可以發布Exe執行文件或者打包為可供網頁調用的一個獨立的包文件。
4、用Unity3D製作的工程具有高度的可移植性,可以在PS xbox360 Android iPhone mac等系統上運行。
嵌入網頁:
1、用Unity3D實現嵌入網頁和Flash插入網頁原理完全一致,也是使用ActiveX控制項嵌入在網頁中。所以和Flash一樣,需要安裝一個播放器插件(小於3M)。

2、查看頁面源碼,可以看到如下嵌入部分:
<object id="UnityObject" classid="clsid:444785F1-DE89-4295-863A-D46C3A781394"width="600" height="450"codebase="http://webplayer.unity3d.com/download_webplayer/UnityWebPlayer.cab#version=2,0,0,0">
<param name="src" value="MyDataFile.unity3d" />
<embed id="UnityEmbed" src="MyDataFile.unity3d" width="600" height="450"type="application/vnd.unity" pluginspage="http://www.unity3d.com/unity-web-player-2.x" />
</object>
3、和Flash一樣,在瀏覽器中載入3D場景或者讀取時的圖標進度條都能進行自定義,也可以自定義是否激活是用右鍵菜單。

數據交互
1、在Unity3D中調用網頁js函數
如果我們在html中有腳本函數;則在u3d中我們可用使用Application.ExternalCall調用js函數,該方法只適合在Web3D環境下使用。該方法支持基本類型的傳遞和數組傳遞,任何類型都會轉換成字元串類型使用。
例子代碼:
Application.ExternalCall("SayHello","The game says hello!);//調用SayHello,傳遞一個字元串

2、在Unity3D中直接執行一段腳本代碼如:
Application.ExternalEval("if(document.location.host!='unity3d.com'){document.location='http://unity3d.com';}");

3、在js中調用Unity3D函數(傳遞消息等)
如果有Unity3D中有一段用JS寫的功能函數:
function MyFunction(param:String)
{
Debug.Log(param);
}
需要在JS中呼叫這個函數則可以這樣寫:
<script type="text/javascript" language="javascript">
SaySomethingToUnity(document.getElementById("UnityContent").SendMessage("MyObject","MyFunction","Hello fom a web page!"););
</script>
這里要注意的是MyObject代表Unity3D中的一個場景名稱為MyObject,MyFunction是調用的函數,最後一個字元為傳遞的參數。

與php,jsp等的表單數據交互
與php,jsp等的表單數據交互很可能會是今後用到的主要方式,原理是利用form表彰傳遞數據,下面以php為例來進行說明。
Unity3D可以實現向某個指定頁面發送表單數據然後在php中使用_POST獲取傳遞回來的表彰數據。比如:
<?php
$action = $_POST["myform_action"];//定義一個變數$action用來獲取頁面傳遞過來的表單數據
if($action!=""){
echo $action;//如果接收到了數據則列印出數據內容
}
?>
在Unity3D中我們發送數據的代碼如下:
var form = new WWWForm();//定義一個網頁表單
form.AddField("myform_action","Action1");//添加一個表彰欄位名稱為myform_action內容是action1
var download = new 發送表單數據到指定網址頁面
假如index.php執行的是資料庫/統計操作,我們就可以對傳遞的數據進行保存讀取或者其他操作了。

『伍』 如何在Unity3d中實現和網頁數據的交互

Unity3D和網頁數據交互的基本原理簡介:

1、Unity3D的游戲引擎是和編輯器集成在一起的,所有它也是一個製作/開發平台。

2、Unity3D是使用JavaScript、C#作為核心腳本語言來驅動事個游戲引擎。

3、平台可以

數據交互:

1、在Unity3D中調用網頁js函數

如果我們在html中有腳本函數;則在u3d中我們可用使用Application.ExternalCall調用js函數,該方法只適合在Web3D環境下使用。該方法支持基本類型的傳遞和數組傳遞,任何類型都會轉換成字元串類型使用。

例子代碼:

Application.ExternalCall("SayHello","The game says hello!);//調用SayHello,傳遞一個字元串

2、在Unity3D中直接執行一段腳本代碼如:

Application.ExternalEval("if(document.location.host!='unity3d.com'){document.location='http://unity3d.com';}");

3、在js中調用Unity3D函數(傳遞消息等)

如果有Unity3D中有一段用JS寫的功能函數:

function MyFunction(param:String)

{

Debug.Log(param);

}

需要在JS中呼叫這個函數則可以這樣寫:

這里要注意的是MyObject代表Unity3D中的一個場景名稱為MyObject,MyFunction是調用的函數,最後一個字元為傳遞的參數。

與php,jsp等的表單數據交互

與php,jsp等的表單數據交互很可能會是今後用到的主要方式,原理是利用form表彰傳遞數據,下面以php為例來進行說明。

Unity3D可以實現向某個指定頁面發送表單數據然後在php中使用_POST獲取傳遞回來的表彰數據。

比如:$action = $_POST["myform_action"];//定義一個變數$action用來獲取頁面傳遞過來的表單數據

if($action!=""){

echo $action;//如果接收到了數據則列印出數據內容

}

?>

在Unity3D中我們發送數據的代碼如下:

var form = new WWWForm();//定義一個網頁表單

form.AddField("myform_action","Action1");//添加一個表彰欄位名稱為myform_action內容是action1

var download = new WWW("www.xxx.com/index.php",form);//發送表單數據到指定網址頁面

假如index.php執行的是資料庫/統計操作,我們就可以對傳遞的數據進行保存讀取或者其他操作了。

『陸』 在unity3d裡面用C#連接資料庫得到數據,能不能傳到JS裡面使用啊怎麼在JS裡面得到那些數據啊

首先 如果你是直接訪問資料庫的,我建議你不要這么干,可以通過webservice 或者其他通信方式間接訪問資料庫,因為你這么做看似非常快但是很不安全。

方法01
------------------------JS訪問C#的變數-----------------------------
JS腳本:
import System.Reflection;
var ee = 0;
var ddf:GameObject;
function OnGUI ()
{
var targetController1:Component= ddf.GetComponent("ctrl");
var fieldInfo: FieldInfo=targetController1.GetType().GetField("csvalue");
if(GUI.Button(Rect(100,100,100,100),"Call"))
{
ee=fieldInfo.GetValue(targetController1);
print(ee.ToString());
}
}

C#腳本:
using UnityEngine;
using System.Collections;
public class ctrl : MonoBehaviour
{
public int csvalue = 100;
void Start ()
{
}

void Update ()
{

}
}
-----------------------c#訪問JS變數------------------------
c#代碼:
using UnityEngine;
using System.Collections;
using System;
using System.Reflection;
public class CtoJS : MonoBehaviour {

public GameObject tt;
public String moneycount;
public String boncount;
// Use this for initialization
void Start ()
{
Component AComponent = tt.GetComponent("CllisionsSomeThing");
FieldInfo fieldInfo = AComponent.GetType().GetField("MC");
FieldInfo fieldInfo1 = AComponent.GetType().GetField("BomCount");
moneycount = fieldInfo.GetValue(AComponent).ToString();
boncount= fieldInfo1.GetValue(AComponent).ToString();

print(moneycount);
print(boncount);
}

void Update ()
{
}
}

js代碼:
#pragma strict
var MC = "sdfsdfs";
var BomCount = 1000;
function Start () {
}
function Update () {
}
-------------------------------------------------------------------------------------------------
方法02

兩個文件 test1.js 和 test2.cs
test1.js

function OnGUI()
{
if(GUI.Button(Rect(25,25,100,30),"JS Call CS" ))
{
var c = gameObject.GetComponent("test2");
c.PrintTest();
}
}

function testPrint()
{
print("CS Call JS");
}

test2.cs

using UnityEngine;
using System.Collections;

public class test2: MonoBehaviour {

void OnGUI()
{
if(GUI.Button(new Rect(25,70,100,30), "CS Call JS"))
{
test1 c = (test1)gameObject.GetComponent("test1");
c.testPrint();
}
}

void PrintTest()
{
print("JS Call CS");
}
}

這里必須要注意的是JS文件必須是在 "Standard Assets"、 "Pro Standard Assets" 和 "Plugins" 這三個目錄中的任何一個里,而CS文件不能與JS文件在一個目錄中。原因是,這三個目錄里的腳本被最先編譯,"Editor"目錄里的稍後編譯,其他的腳本最後編譯。目前Unity3D的2.5的版本似乎不支持C# 3.0,所以無法用var的關鍵字,這樣就只支持強類型,所以如果在一個目錄下則CS文件無法讀取JS里的方法,也就無法編譯通過了。而JS調用CS方法則無此限制。

『柒』 Unity3D與Sqlite資料庫是怎麼直連 成的求大夥為我解答啊

現在我們來研究一下Unity3D如何與Sqlite資料庫進行直連的問題

1、環境介紹:

Windows7,Unity3D,SQLite Expert Personal 3

2、開發語言:

JavaScript

3、需要的dll文件:

Mono.Data.Sqlite.dll和sqlite3.dll,稍後我會將所有文件打包在一起供大家討論下,先看下這些dll文件應該被放在哪裡,

要改動的地方我已經用紅色標記出來了,注意這個要改成.NET2.0,這樣才能夠發布的。系統默認的不是.NET2.0,大家這一點要注意!!!Modified 2011 by Alan Chatham */

//#pragma strict

/*代碼描述

*本代碼是為了在Windows環境下運行unity3d和Sqlite資料庫而寫的;實現的基本功能是unity3d能夠與資料庫之間進行基本的通信,比如說

在資料庫中的數據被改變了以後,unity3d中得到的數據也會在刷新了之後跟著改變;這只是一個基本的核心的技術,為的是能夠應用在大型的unity3d

項目中,能夠存儲場景中的項目的屬性,在需要改變對象的屬性或增加、減少等對象時能夠很方便的用得上。

要實現本代碼。首先需要一些dll文件,一個是Mono.Data.SQLiteClient.dll,另外一個是sqlite3.dll,這些文件都能夠在unity3d的安裝目錄中找得到。

除此之外,還需要把這兩個文件放在你的項目的這個路徑下面:AssetsPlugins,沒有Plugins文件夾就必須創建這個文件夾,然後將這兩個dll文件放在該文件夾寫。

當然,如果你想能夠在PC上面發布成可執行文件,還需要改動一些地方。在unity3d中的Play Setting ->Other Setting 中將Api Compatibility的等級改為

.NET 2.0;那麼這些操作做完了以後,如果你的代碼寫得沒有問題,那麼你就可以成功了。

好了,下面咱們來詳細解釋下代碼吧。

*

*/

import System.Data;// we import ourdata class 我們先導入我們的數據集

import Mono.Data.Sqlite; // we import sqlite 我們導入sqlite數據集,也就是Plugins文件夾下的那個dll文件


class dbAccess {

// variables for basic query access

private var connection : String; //資料庫的連接字元串,用於建立與特定數據源的連接

private var dbcon : IDbConnection; //IDbConnection的連接對象,其實就是一個類對象

private var dbcmd : IDbCommand; //IDbCommand類對象,用來實現操作資料庫的命令:註解:我在網上資料看到的如何實現對資料庫執行命令:

//首先創建一個IDbConnection連接對象,然後將一條資料庫命令賦值給一個字元串,利用這個字元串和連接對象

//就可以創建(new)一個IDbCommand對象了,然後使用提供的方法就可以執行這個命令了。

private var reader : IDataReader; //reader的作用就是讀取結果集的一個或多個只進結果流


function OpenDB(p : String){

connection = "URI=file:" + p; // we set the connection to our database

dbcon = new SqliteConnection(connection);

dbcon.Open(); //打開資料庫連接操作

}


function BasicQuery(q : String, r : boolean){ // run a c Sqlite query

dbcmd = dbcon.CreateCommand(); // create empty command

dbcmd.CommandText = q; // fill the command

reader = dbcmd.ExecuteReader(); // execute command which returns a reader返回IDataReader的對象,創建IDataReader的對象

if(r){ // if we want to return the reader

return reader; // return the reader 返回讀取的對象,就是讀到了什麼東西

}

}


// This returns a 2 dimensional ArrayList with all the

//data from the table requested

function ReadFullTable(tableName : String){

var query : String;

query = "SELECT * FROM " + tableName;

dbcmd = dbcon.CreateCommand();

dbcmd.CommandText = query;

reader = dbcmd.ExecuteReader();

var readArray = new ArrayList();

while(reader.Read()){

var lineArray = new ArrayList();

for (var i = 0; i < reader.FieldCount; i++)

lineArray.Add(reader.GetValue(i)); // This reads the entries in a row

readArray.Add(lineArray); // This makes an array of all the rows

}

return readArray; // return matches

}


// This function deletes all the data in the given table.Forever.WATCH OUT! Use sparingly, if at all

function DeleteTableContents(tableName : String){

var query : String;

query = "DELETE FROM " + tableName;

dbcmd = dbcon.CreateCommand();

dbcmd.CommandText = query;

reader = dbcmd.ExecuteReader();

}


function CreateTable(name : String, col : Array, colType : Array){ // Create a table, name, column array, column type array

var query : String;

query= "CREATE TABLE " + name + "(" + col[0] + " " + colType[0];

for(var i=1; i<col.length; i++){

query += ", " + col + " " + colType;

}

query += ")";

dbcmd = dbcon.CreateCommand(); // create empty command

dbcmd.CommandText = query; // fill the command

reader = dbcmd.ExecuteReader(); // execute command which returns a reader

}

function InsertIntoSingle(tableName : String, colName : String, value : String){ // single insert

var query : String;

query = "INSERT INTO " + tableName + "(" + colName + ") " + "VALUES (" + value + ")";

dbcmd = dbcon.CreateCommand(); // create empty command

dbcmd.CommandText = query; // fill the command

reader = dbcmd.ExecuteReader(); // execute command which returns a reader

}

function InsertIntoSpecific(tableName : String, col : Array, values : Array){ // Specific insert with col and values

var query : String;

query = "INSERT INTO " + tableName + "(" + col[0];

for(var i=1; i<col.length; i++){

query += ", " + col;

}

query += ") VALUES (" + values[0];

for(i=1; i<values.length; i++){

query += ", " + values;

}

query += ")";

dbcmd = dbcon.CreateCommand();

dbcmd.CommandText = query;

reader = dbcmd.ExecuteReader();

}


function InsertInto(tableName : String, values : Array){ // basic Insert with just values

var query : String;

query = "INSERT INTO " + tableName + " VALUES (" + values[0];

for(var i=1; i<values.length; i++){

query += ", " + values;

}

query += ")";

dbcmd = dbcon.CreateCommand();

dbcmd.CommandText = query;

reader = dbcmd.ExecuteReader();

}


// This function reads a single column

//wCol is the WHERE column, wPar is the operator you want to use to compare with,

//and wValue is the value you want to compare against.

//Ex. - SingleSelectWhere("puppies", "breed", "earType", "=", "floppy")

//returns an array of matches from the command: SELECT breed FROM puppies WHERE earType = floppy;

function SingleSelectWhere(tableName : String, itemToSelect : String, wCol : String, wPar : String, wValue : String){ // Selects a single Item

var query : String;

query = "SELECT " + itemToSelect + " FROM " + tableName + " WHERE " + wCol + wPar + wValue;

dbcmd = dbcon.CreateCommand();

dbcmd.CommandText = query;

reader = dbcmd.ExecuteReader();

var readArray = new Array();

while(reader.Read()){

readArray.Push(reader.GetString(0)); // Fill array with all matches

}

return readArray; // return matches

}



function CloseDB(){

reader.Close(); // clean everything up

reader = null;

dbcmd.Dispose();

dbcmd = null;

dbcon.Close();

dbcon = null;

}


}

復制代碼


如果你還有什麼不懂的,可以網路搜下:編程回憶錄,他們現在正在錄制這方面的教程,都是零基礎開始,由淺入深。

『捌』 求助,unity3d怎麼訪問資料庫

打開sqlserver企業管理器-->打開sqlserver組-->右鍵單擊本地的資料庫,打開菜單中的屬性--〉選擇安全性,在身份驗證下,選擇「sqlserver和windows」,之後按確定就ok了

『玖』 unity 3d怎麼與資料庫進行交互

Unity3d連接SQL
Server資料庫:
首先需要把Unity安裝路徑下的System.Data.dll和Mono.Data.SqliteClient.dll拷貝到當前unity工程的Assets文件夾下,因為之後在腳本中引用的.dll並不是framework提供的。腳本的內容:
using
UnityEngine;
using
Sys...

『拾』 求問關於unity3d操作資料庫的問題

你好,前段時間做項目沒聯網,才看到。

這個問題我已經解決了,不過我是用C#解決的,我不會javascript,如果你需要你把郵箱給我我可以發給你