Teilen Sie Ihre Erfahrunge und Wünsche mit uns und anderen Usern!
Error importing the Package
I get this error when I import the package to Unity:
Assets/game4automation/private/RuntimeUI/SceneMouseNavigation.cs(801,38): error CS0103: The name 'SpaceNavigator' does not exist in the current context
No Mutex PLCSim Advanced Interface proble
Hello,
we are using the PLCSim Advanced Interface.
We can Import the PLCSignals without any Troubles:

The first time that we start the simulation in Unity everything is working fine (COM OK).
But after we stop the unity editor and try to start again, we get “No Mutex”... so no communication is established between the plc and Unity.
We found out that creating a new PLC Instance and re-importing the signals “fix the error”... but just for the first run. Then we have to repeat the process of creating a new PLC again and again...
Could be some background process blocking the communication? Thank you in advance.
How to build a gantry
Hi everyone,
I’m trying to figure out the best way to model a gantry in realvirtual and I’d like to check if my approach makes sense.
Mechanical setup
-
Think of a classic gantry crane
-
In my machine I have
-
Two separate X-axes at the bottom (front and back rails – green arrows).
They can move independently in X, but in normal operation they should behave like a gantry pair. -
On top of them sits a Y-axis stage (blue arrows) that moves sideways.

-
-
The Y-stage is physically connected to the X-axes via joints in Unity.
-
The CAD / Unity hierarchy is basically flat – the Y-stage is not a child of one of the X carriages, so I cannot rely on parenting to move it together with X.
Control side
-
I have separate drives / axis values for:
-
X-front
-
X-back
-
Y-stage
-
-
The requirement is:
-
When X moves, the whole Y-stage must move with it.
-
Y should still have its own motion relative to the gantry.
-
Questions
-
What is the recommended realvirtual setup for this kind of gantry?
-
How should I combine this with joints?
-
Should I keep the joints at all, or would you recommend a purely kinematic Axis/Drive setup for this use case?
-
Any hints, best practices, or “don’t do this” stories are very welcome.
Thanks in advance!
SceneMouseNavigation.LateUpdate uses FindObjectsByType<TMP_InputField> every frame → catastrophic global scan on large scenes
LateUpdate in SceneMouseNavigation calls CheckForFocusedFields which uses FindObjectsByType.
On large scenes, this per-frame global lookup produces unacceptable frame times.
FindObjectsByType should not be called every frame.
This is the profiler result with 4000 active and 400.000 inactive objects in the scene:

Same scene with an early return in CheckForFocusedFields.


Environment:
- Unity 6000.2.10f1
- realvirtual-Professional-6.2.1
- Windows 10 x64
- RAM 32 GB
- CPU Intel Xeon W-11955M @2.6 GHz (8 Cores)
S7_Interface AreaReadWriteMode MinAreaDBInput causes data reading exception
Hello, I am a Chinese user and I greatly appreciate your company's products
Based on the Pro6 Ver8152 test, the S7_interface AreaReadWriteMode DB test found the following issues (everything is normal in non AreaReadWriteMode mode, but the communication load is high):
1.At the beginning, the O/I of my DB5 corresponded to PLC Output/Input and S7_interface settings:
AreaReadWriteMode:True
DBOutputs:5
MinAreaDBOutput:0
MaxAreaDBOutput:143
DBInputs:5
MinAreaDBInput:144
MaxAreaDBInput:277
ArgumentException: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.
System.Buffer.BlockCopy (System.Array src, System.Int32 srcOffset, System.Array dst, System.Int32 dstOffset, System.Int32 count) (at :0)
realvirtual.S7Interface.WriteS7 () (at Assets/realvirtual/Interfaces/S7TCPIP/S7Interface.cs:933)
realvirtual.S7Interface.CommunicationThreadUpdate () (at Assets/realvirtual/Interfaces/S7TCPIP/S7Interface.cs:1083)
realvirtual.InterfaceThreadedBaseClass.CommunicationThread (System.Threading.CancellationToken token) (at Assets/realvirtual/Interfaces/InterfaceThreadedBaseClass.cs:226)
realvirtual.InterfaceThreadedBaseClass.b__36_0 () (at Assets/realvirtual/Interfaces/InterfaceThreadedBaseClass.cs:124)
System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) (at :0)
System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at :0)
System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at :0)
System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) (at :0)
System.Threading.ThreadHelper.ThreadStart () (at :0)
UnityEngine.<>c:b__0_0(Object, UnhandledExceptionEventArgs)
2. Through debugging and positioning, I modified some of the code and wrote it to PLC.DB.tags normally, but all reads failed without any errors:
WriteS7()
{
...
if (AreaReadWriteMode)
{
...
case S7InterfaceSignal.S7TYPE.BYTE:
Buffer.BlockCopy(bytes, 0, dstarea, pos, 1);
break;
case S7InterfaceSignal.S7TYPE.WORD:
Buffer.BlockCopy(bytes, 0, dstarea, pos, 2);
break;
case S7InterfaceSignal.S7TYPE.DWORD:
Buffer.BlockCopy(bytes, 0, dstarea, pos, 4);
break;
case S7InterfaceSignal.S7TYPE.SINT:
Buffer.BlockCopy(bytes, 0, dstarea, pos, 2);
break;
case S7InterfaceSignal.S7TYPE.INT:
Buffer.BlockCopy(bytes, 0, dstarea, pos, 2);
break;
case S7InterfaceSignal.S7TYPE.DINT:
Buffer.BlockCopy(bytes, 0, dstarea, pos, 4);
break;
case S7InterfaceSignal.S7TYPE.USINT:
Buffer.BlockCopy(bytes, 0, dstarea, pos, 1);
break;
case S7InterfaceSignal.S7TYPE.UINT:
Buffer.BlockCopy(bytes, 0, dstarea, pos, 2);
break;
...
}
...
}
3. Clone PLC DB5 to DB3, set DBInputs to 3, MinAreaDBInput to 0, and read/write everything is normal
4. Modify MinAreaDBInput: 2, the last 2Byte Read in the Read area is invalid
Modify MinAreaDBInput: 4, the last 4Byte Read in the Read area is invalid
... and so on
5.In OPCUA mode, Unity is played twice, but the value of PLCINput is restored to default, but the PLC memory remains in the same state as when the first attempt ended without any changes
6. I debugged the same Unity simulation project implementation based on our own S7.NET communication program: the conveyor belt transfers the tray until the PLC detects the Unity sensor signal and stops, and the OPCUA signal of RealVirtual.io always detects it and runs for a distance before stopping (the faster the speed, the farther it exceeds the distance). However, our own use of S7.NET does not have this problem (we use S7.NET.ReadClass to batch read, parse, update the drive object, update the ValueChange, update the WriteData, and WriteClass to time 50ms WirteData to the PLC).
Could you please help analyze and provide feedback on the above issues? Additionally, I have code to convert the DB exported by the PLC into complete XML, and I hope to modify it into the tag import mechanism of OPCUA in the future (as RealVirtual 6 does not support DB import, I am currently using OPCUA to import PLCTags, and then using OpcuaTagoS7 to change the OPCUA tag to S7Interface AreaReadWriteMode for communication, as I am concerned about the performance issues of OPCUA's subscription mode for large-scale PLCTAGS)
I have sent you the relevant attachments via email. Regarding the method of generating PlcTagsXML from DB, you can also contact me if you need it, because we have successfully tested and verified this aspect through the project (the method found online has multiple bugs in the calculation of S7 address offset).
Looking forward to your reply~
S7_Interface AreaReadWriteMode Debug.zip
By:Liuxingsuifeng
Email: 410701881@qq.com
We fixed all things discussed in this thread - will be available in upcoming release 6.0.8
Chain Transfer Issue
The normal sample scene works great, as well as the majority of the others! Although I am running into major issues with a few components and other test scenes. The chain transfer sample scene does not work at all. The main issue seems to be the chain does not lift no matter what I try. I've changed many parameters and even tried to use the transfer in my own projects but it will not lift off the conveyor. It shows that its moving 'Out', but no motion actually occurs even with exaggerated positions. I was hoping to just use this chain transfer object as its exactly what I need, but it isnt responding. Any ideas on what I may be doing wrong? Unity Version 6000.0.61f1
Realvirtual pro version 6.0.7.8152
realvirutal sim version 6.0.5.7954
Shoe sorter
What happened to shoe sorter model in latest Unity 6 updates. ? I updated model but now shoes do not start at conveyor front but they just march forward leaving conveyor belt.
RV6.0.6 Creating a Build doesn't work
Hi Team,
creating a build seems to not work with RV6.0.+ (I tried several versions).
For this I just imported the RV6 package and created a build but the game looks like this.
My Unity version is 6000.0.58f2.

PLC SIM Advanced 6.0 Windows 11 Realvirutal Unity 6
I have problem with PLCSIM Advanced (Pro). I tried import signal but everytime i have this message.

When I tried start manual PLCSimAdvancedCoupler I have this

I copty to correctly location because I use this in version 2022 but now I can't use this.
RV6: Set Start Position of Main Camera
Hi,
I am changing the starting view of the main camera but when activating the game mode the main camera switches back to another view.
Why is that and how to control the starting view of the main camera properly?
Customer support service by UserEcho