Hi, everyone!
I had converted the following script from Js to C# in order to access the variable in another C# script.
The C# codes can be compiled without errors but it just doesn’t work, while the original Js one works well. Can anybody help me to check what going on?
the original Js script:
private var UDPHost : String = "127.0.0.1";
private var listenerPort : int = 8000;
private var broadcastPort : int = 57131;
private var oscHandler : Osc;
private var eventName : String = "";
private var eventData : String = "";
private var counter : int = 0;
public var output_txt : GUIText;
public function Start ()
{
var udp : UDPPacketIO = GetComponent("UDPPacketIO");
udp.init(UDPHost, broadcastPort, listenerPort);
oscHandler = GetComponent("Osc");
oscHandler.init(udp);
oscHandler.SetAddressHandler("/eventTest", updateText);
oscHandler.SetAddressHandler("/counterTest", counterTest);
}
Debug.Log("Running");
function Update () {
output_txt.text = "Event: " + eventName + " Event data: " + eventData;
var cube = GameObject.Find("Cube");
var boxWidth:int = counter;
cube.transform.localScale = Vector3(boxWidth,5,5);
}
public function updateText(oscMessage : OscMessage) : void
{
print ("get text message!");
eventName = Osc.OscMessageToString(oscMessage);
eventData = oscMessage.Values[0];
}
public function counterTest(oscMessage : OscMessage) : void
{
print ("get counter message!");
Osc.OscMessageToString(oscMessage);
counter = oscMessage.Values[0];
}
and the converted C#
using UnityEngine;
using System.Collections;
using System.Threading;
using System.Text;
using System.IO;
using System;
public class OSCListener : MonoBehaviour {
private string UDPHost = "127.0.0.1";
private int listenerPort = 8000;
private int broadcastPort = 57131;
private Osc oscHandler;
private string eventName = "";
private string eventData = "";
private int counter = 10;
public GUIText output_txt;
// Use this for initialization
void Start () {
UDPPacketIO udp = GetComponent<UDPPacketIO>();
udp.init(UDPHost, broadcastPort, listenerPort);
oscHandler = GetComponent<Osc>();
if (oscHandler != null) {
oscHandler.init (udp);
print("build oscHandler");
} else {
print ("not able to build oscHandler");
}
oscHandler.SetAddressHandler("/eventTest", updateText);
oscHandler.SetAddressHandler("/counterTest", counterTest);
}
//Debug.Log("Running");
// Update is called once per frame
void Update () {
output_txt.text = "Event: " + eventName + " Event data: " + eventData;
GameObject cube = GameObject.Find("Cube");
int boxWidth = counter;
cube.transform.localScale = new Vector3(boxWidth,5,5);
}
void updateText(OscMessage Message)
{
print ("get text message!");
eventName = Osc.OscMessageToString(Message);
eventData = (string)Message.Values[0];
}
void counterTest(OscMessage Message)
{
print ("get counter message!");
string eventCounter = Osc.OscMessageToString(Message);
counter = (int)Message.Values[0];
}
}
Thanks a lot in advance!