// Golang Server
package main
import (
"net/http"
"fmt"
)
func loadin(w http.ResponseWriter, r *http.Request) {
username := r.FormValue("username")
password := r.FormValue("password")
// Golang Server
package main
import (
"net/http"
"fmt"
)
func loadin(w http.ResponseWriter, r *http.Request) {
username := r.FormValue("username")
password := r.FormValue("password")
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
public Texture2D t; // 將外部圖片套用至此處,圖片要到 Advanced 設定為可讀可寫才行喔 (否則會失敗)
IEnumerator Start () {
WWWForm wwwF = new WWWForm ();
wwwF.AddBinaryData ("file", t.EncodeToPNG (), "A.png");
WWW www = new WWW ("http://127.0.0.1:8080/upload", wwwF);
yield return www;
print ("Upload Finish !!");
using UnityEngine;
using System.Collections;
using System.Net;
public class NewBehaviourScript2 : MonoBehaviour {
void Start () {
WebClient wc = new WebClient();
wc.DownloadFile("http://27.105.18.141/img/A.mp3", "C:/Audio/A.mp3");
}
}
using UnityEngine;
using System.Collections;
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
public class MyServer : MonoBehaviour {
void Start () {
TcpListener tcp_Listener = new TcpListener(1024);
tcp_Listener.Start();
using System.Security.Cryptography; // 記得匯入
FileStream f = new FileStream("C:/A.png", FileMode.Open);
MD5 m = MD5.Create();
byte [] hashb = m.ComputeHash(f);
f.Close();
string sm = "";
for(int k = 0; k < hashb.Length; k++){
sm += hashb[k] + " ";
for(int i = 0;i<parentObj.transform.childCount;i++){
GameObject go = parentObj.transform.GetChild(i).gameObject;
Destroy(go);
}
iOS 版本可以參考:http://lolikitty.pixnet.net/blog/post/193807692
本程式碼使用 Android Etcetera Plugin 插件,如果沒有的話可以到 Asset Store 購買 (這不是廣告啦)
Asset Store:https://www.assetstore.unity3d.com/en/#!/content/2741
該範例執行結果:
1. 一開始一片空白,我們必須點選選擇圖片按鈕
要先在外面先建立 "空物件",然後把以下程式碼拖進去
之後要手動 Add Component,本次需要匯入兩個 Component,分別是 MeshFillter 與 MeshRender
最後在建立一個 Material 把它丟入 MeshRender (如果有喜歡的圖片也可匯入)
如下:
執行結果 (沒意外會出現一個 小蘿莉 平面,大功告成!!):
以下為參考 Unity Wiki 網站: http://wiki.unity3d.com/index.php/TextureScale
Unity 官方沒有直接改貼圖大小的API,但是 Wiki 上有,故我們建立以下程式碼 (TextureScale.cs) 並匯入Unity 專案中。
然後要如何使用呢? 很簡單,如下:
TextureScale.Bilinear (<原先的Texture2D>, <新貼圖的寬>, <新貼圖的高>);
※ 原先的 Texture2D 將會被覆蓋掉
我做了一個實用的 選擇 程式碼,且提供 主畫面 與 選擇頁面 的切換
選擇頁面的 ok 與 Cancel 皆有作用,如果按下 ok 將套用選擇頁面的數字
如果按下取消,則還原先前的數字,在選擇頁面上的數字並不會被套用
且該程式碼可用於Android 與 iOS 等手機上
選擇頁面還可以用觸控滑動,我想該程式碼可以幫助手機開發者很大的忙
外部聲音檔可使用 Wav、Mp3、Ogg、Xm、It、Mod、S3m 等格式
(但目前測試過只有 Android 才可以播放 mp3... PC 需要 Wav...)
(且Android 中測試過可以用中文與日文路徑,PC端目前並不行...,PC端一定要用英文路徑...)
使用本程式碼必須在外部加入 Component 元件:Audio Source
如下圖:
套用完 Audio Source 元件 與 程式碼 並 執行 後,正常來說就可以聽見聲音了
using UnityEngine;
必須先下載 ffmpeg :http://www.ffmpeg.org/
或者下載我備份的 ffmpeg:https://www.dropbox.com/s/a1fb8jg3ktqdtvg/ffmpeg.exe
下載後將 ffmpeg.exe 丟到 Unity 專案資料夾,之後專案發布後也要再丟一次到發布的資料夾
using UnityEngine;
using System.Collections;
using System.Diagnostics;
using System.Threading;
public class NewBehaviourScript : MonoBehaviour {
如果你的輸出結果與放入前的數值不一樣,請先看這篇文章
http://lolikitty.pixnet.net/blog/post/185218848
程式碼:
using UnityEngine;
using System.Collections;
using Npgsql;
public class TestPgSQL : MonoBehaviour {
可以到 http://pgfoundry.org/frs/?group_id=1000140 下載 Npgsql.dll 檔到 Unity 中
這裡我使用 Npgsql1.0.1-bin-mono-2.0.zip 版本 (太新版 Unity 會不支持...)
如果上面連結掛掉或找不到,我這裡提供我使用的的 Npgsql.dll 檔
https://www.dropbox.com/s/9rbeserttjlrf5e/Npgsql1.0.1-bin-mono-2.0.zip
using UnityEngine;
using System.Collections;
using Npgsql;
public class Test : MonoBehaviour {
void Start () {
這個程式碼執行後,Unity 執行時會當掉,但其實不是。
這是因為本程式碼只有單執行緒,他正在等待客戶端連線,
所以才有當掉的感覺 當客戶端連線後,Unity 就可以正常跑了 ...
using UnityEngine;
using System.Collections;
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
public class NewBehaviourScript : MonoBehaviour {
執行解果:
Golang, Go 語言 伺服器:
Unity 客戶端執行結果:
程式碼:
//----------------------------------- Unity C# 客戶端 using UnityEngine; using System.Collections; using System; using System.Net; using System.Net.Sockets; using System.IO; using System.Threading; public class NewBehaviourScript : MonoBehaviour { string ip = "127.0.0.1"; // 請改為自己對外的 IP int port = 1024; void OnGUI () { if(GUI.Button(new Rect(10,10,100,100), "Send Public IP")){ Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect(ip, port); NetworkStream stream = new NetworkStream(socket); StreamWriter sw = new StreamWriter(stream); StreamReader sr = new StreamReader(stream); sw.WriteLine("你好伺服器,我是客戶端。"); sw.Flush(); string st = sr.ReadLine(); print (st); sw.Close(); stream.Close(); socket.Close(); } } } //-------------------------------------- Golang , Go語言 伺服器
package main import ( "bufio" "net" ) func main() { listener, _ := net.Listen("tcp", ":1024") println("啟動伺服器...") for { conn, _ := listener.Accept() // 持續監聽客戶端連線 go ClientLogic(conn) } } func ClientLogic(conn net.Conn) { // 從客戶端接收資料 s, _ := bufio.NewReader(conn).ReadString('\n') println("由客戶端傳來的訊息:", s) // 發送 資料至客戶端 conn.Write([]byte("安安你好\n")) // 關閉連線 conn.Close() }
將本程式碼套用至攝影機,並建立一個 Cube 。
程式執行後,可以用滑鼠點 Cube,即可打印 ok 字串。
using UnityEngine;
using System.Collections;
public class My3DButton : MonoBehaviour {
void Update () {
本範例共需兩個 Plane,一個是動態畫面預覽,另一個是拍照完畢顯示。
將本程式碼套用至其中一個 Plane,而另一個Plane 套用至本程式碼的 public GameObject g; 之中
運行後即可有效果。
本程式碼支持 PC 的 WebCam 網路攝影機、Android 與 iOS 的攝影機。
using UnityEngine;
本範例可以使用 PC 的網路攝影機,或是Android 、iOS 的攝影機
使用本程式碼必須將本腳本套用於 "3D模型中" ,例如 Plane 、Cube 等等,不可使用於空物件或攝影機身上,否則不會出現效果。
using UnityEngine;
using System.Collections;
public class CameraTest : MonoBehaviour {
void Start () {
WebCamTexture c = new WebCamTexture ();