Matlab and Unity connection

28 views (last 30 days)
Si Yi
Si Yi on 3 Feb 2023
Commented: Si Yi on 26 Mar 2023
I am currently working on a project that requires measuring objects in real-time, and developing it into an application using Unity. I would like to know if there is a connection between MatLab and Unity, that enables me to do so.

Answers (1)

HimeshNayak
HimeshNayak on 13 Feb 2023
Hi Si Yi,
I understand that you want to create a connection between MATLAB and unity to develop an application in Unity.
According to my research, I have come up with the following steps which may help you to connect MATLAB and Unity. We can connect them with the help of TCP.
1) Firstly, in Unity set up a TcpListener that can accept the commands at a particular IP Address and port to which MATLAB will be connected.
The following C# code listens to IP Address 127.0.0.1 with port 55001.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Net;
using System.Net.Sockets;
using System.Linq;
using System;
using System.IO;
using System.Text;
public class DemoObject : MonoBehaviour {
   // initialize the communication with MatLab    
   TcpListener listener;
  
void Start() {
   // LISTEN TO MATLAB. Set up unity listening to matlab
       listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 55001);
       listener.Start();
       print("is listening");
   }
}
2) After executing the code. Run the following MATLAB code to connect it to the above-mentioned IP and port so that the commands entered in MATLAB can be reflected in Unity.
% set up the code for communicating with Unity
tcpipClient = tcpclient('127.0.0.1',55001);
set(tcpipClient,'Timeout', 3);
Now the connection has been set up and we can write more code to perform actions such as move an object using arrow keys as shown in the following video.
Regards,
Himesh
  1 Comment
Si Yi
Si Yi on 26 Mar 2023
Hello Himesh,
Thanks for the help. However, I am unable to established the connection. I followed the Youtube video, and did not get any errors or issues. (I also installed PsychToolKit in my MATLAB) But when I attempt to press 'Up' or 'Down', I am unable to command the cylinder in Unity to do so. I believe it is because the handshake is not established. I've also double checked my IP address and port, as well as my firewall is turned off. Unfortunately, I am still unable to get the connection, why is that so?

Sign in to comment.

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!