Hi guys, I’m a beginner of Unity,doing a project with Unity and Neurosky Mindwave, and have some problem with the connection of EEG(EEG has connected with the computer, but it can’t connect with Unity). I’ve downloaded a project from Neurosky website, but it seems not working.
It shows:
Failed to load ‘Assets/Plugins/ThinkGear.dll’, expected 64 bit architecture (IMAGE_FILE_MACHINE_AMD64), but was IMAGE_FILE_MACHINE_I386. You must recompile your plugin for 64 bit architecture.
UnityEngine.Component:SendMessage(String)
ThinkGearGUI:OnApplicationQuit() (at Assets/Scripts/ThinkGearGUI.js:94)
Failed to load ‘Assets/Plugins/ThinkGear.dll’, expected 64 bit architecture (IMAGE_FILE_MACHINE_AMD64), but was IMAGE_FILE_MACHINE_I386. You must recompile your plugin for 64 bit architecture.
ThinkGearController:OnHeadsetDisconnectionRequest() (at Assets/Plugins/ThinkGearController.cs:103)
ThinkGearController:OnHeadsetDisconnectionRequest() (at Assets/Plugins/ThinkGearController.cs:99)
UnityEngine.Component:SendMessage(String)
ThinkGearGUI:OnApplicationQuit() (at Assets/Scripts/ThinkGearGUI.js:94)
DllNotFoundException: Assets/Plugins/ThinkGear.dll
ThinkGearController.OnHeadsetDisconnectionRequest () (at Assets/Plugins/ThinkGearController.cs:99)
UnityEngine.Component:SendMessage(String)
ThinkGearGUI:OnApplicationQuit() (at Assets/Scripts/ThinkGearGUI.js:94)
The script is:
enum AppState {
Disconnected = 0,
Connecting,
Connected
}
var portName : String;
private var showErrorWindow : boolean = false;
private var showConnectedWindow : boolean = false;
private var showDisconnectedWindow : boolean = false;
private var state : AppState = AppState.Disconnected;
private var headsetValues : Hashtable;
private var windowRect : Rect = new Rect(100, 100, 150, 100);
function OnGUI(){
GUILayout.BeginHorizontal();
switch(state){
case AppState.Disconnected:
// display UI for the user to enter in the port name and connect
GUILayout.Label(“Port name:”);
portName = GUILayout.TextField(portName, GUILayout.Width(150));
if(GUILayout.Button(“Connect”)){
state = AppState.Connecting;
SendMessage(“OnHeadsetConnectionRequest”, portName);
}
break;
case AppState.Connecting:
GUILayout.Label(“Connecting…”);
break;
case AppState.Connected:
// display UI to allow a user to disconnect
GUILayout.Label(“Connected”);
if(GUILayout.Button(“Disconnect”))
SendMessage(“OnHeadsetDisconnectionRequest”);
break;
}
GUILayout.EndHorizontal();
// only output the headset data if the headset is
// connected and transmitting data
if(state == AppState.Connected && headsetValues){
for(var key : String in headsetValues.Keys){
var value : float = headsetValues[key];
GUILayout.Label(key + ": " + value);
}
}
if(showErrorWindow)
GUILayout.Window(0, windowRect, ErrorWindow, “Error”);
if(showConnectedWindow)
GUILayout.Window(0, windowRect, ConnectedWindow, “Connected”);
if(showDisconnectedWindow)
GUILayout.Window(0, windowRect, DisconnectedWindow, “Disconnected”);
}
/*
- Event listeners
*/
function OnHeadsetConnected(){
showConnectedWindow = true;
state = AppState.Connected;
}
function OnHeadsetConnectionError(){
showErrorWindow = true;
state = AppState.Disconnected;
}
function OnHeadsetDisconnected(){
showDisconnectedWindow = true;
state = AppState.Disconnected;
}
function OnHeadsetDataReceived(values : Hashtable){
headsetValues = values;
}
/**
- Disconnect the headset when the application quits.
*/
function OnApplicationQuit(){
SendMessage(“OnHeadsetDisconnectionRequest”);
}
/*
- Status windows
*/
function ErrorWindow(){
GUILayout.Label(“There was a connection error.”);
if(GUILayout.Button(“Close”))
showErrorWindow = false;
}
function ConnectedWindow(){
GUILayout.Label(“The headset has been successfully connected.”);
if(GUILayout.Button(“Okay”))
showConnectedWindow = false;
}
function DisconnectedWindow(){
GUILayout.Label(“The headset has been disconnected.”);
if(GUILayout.Button(“Okay”))
showDisconnectedWindow = false;
}
Does any know how to fix it? Thanks.