Teilen Sie Ihre Erfahrunge und Wünsche mit uns und anderen Usern!

OPCUA doesnt connnect on unity executable
Hello,
i have been working on a project that uses OPCUA to get some data from a server and when I execut it on the editor of Unity everything works fine but when I try to make the executable for windows platforms, in the executable doesn't connect to the server. Do I need to use any special settings to do the build on Windows?
Please if someone could help me with this I would really apreciate it. Thank you

Hard to say. Are you able to get the Log data when you start it as a compiled version. There should be no special settings you need to consider. You could also use this Asset to get the Console Log in the Unity Player Window:
https://assetstore.unity.com/packages/tools/gui/in-game-debug-console-68068

OPCUA with 2020.15 Doesn't Import Arrays
Hello. I have setup an OPCUA Client without issue on several versions of Unity (2019.4.18f1, 2020.3.25f1) with game4automation 2020.13.
I now seem to have an issue Importing array nodes after an update to game4automation 2020.15.
The nodes import, but the arrays are only a single gameobject without a list of value, instead of a hierarchy array of game objects that it does with 2020.13.
Is this a known issue, or does it work differently with arrays now? Possibly because of the OPCUA change in 2020.14?

Yes, arrays are not supported currently. We will add this in one of the next releases. If you need it at this moment you should go back to the old version.

Build
UnityEnginy 2020.2.6f1
Building the project end with error. "ArgumentException: The Assembly ZeroFormatter is referenced by PREspective ('Assets/Plugins/PREspective/PREspective.dll'). But the dll is not allowed to be included or could not be found.
UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1[T] alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2[TKey,TValue] cache, UnityEditor.BuildTarget target) (at <8c48e4bc2ff34638b69095cbb65e2e27>:0)
UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1[T] alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2[TKey,TValue] cache, UnityEditor.BuildTarget target) (at <8c48e4bc2ff34638b69095cbb65e2e27>:0)
UnityEditor.AssemblyHelper.FindAssembliesReferencedBy (System.String[] paths, System.String[] foldersToSearch, UnityEditor.BuildTarget target) (at <8c48e4bc2ff34638b69095cbb65e2e27>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)"
I Change Global functions "public static List GetGroups()" and "GetAllWithGroup(string group)" But, In corpasion it was witout differences.
I tried to build with differed API settings .NET 2.0 ant .NET 4.x
Probably there is probably problem with PREspective.dll, that doesn't properly connected to Unity, but I am not sure.
Do anybody has an idea ? thank you all.

You have PREspective in your project (Prespective is another Digital Twin product). It is not a part of Game4Automation which is causing your problems. Please delete everything of Prespective or start with an empty project.

OPCUA4Unity can't connect to opcua server with username and password
Anonymous connection works fine, but when using a username and password, the console doesn't show any errors in creating the connection, but I am not able to read or write to nodes. Also the server doesn't acknowledge the connection. Even when using application certificates the connection doesn't work properly. Using OPC Watch or UaExpert I can easily connect to the server with the username and password.

Unity is connecting successfully but afterwards no nodes are available when the connection is done with a username and password. Are there any special security settings on the nodes itself in the server which could prevent the reading when loggin in with a user?

Problem after import game4automation assert
Hello,
I have a problem with the game4automation assets. My first project works very well but now I started a new one and after I installed the game4automation again I could add the game4automation asset again to this new project. But I have no tab in the menu bar from game4automation and in the console following errors:
Assets\game4automation\Professional\LogicStep_CinemachineCamera.cs(5,7): error CS0246: The type or namespace name 'Cinemachine' could not be found (are you missing a using directive or an assembly reference?)
Assets\game4automation\private\Game4AutomationController.cs(17,7): error CS0246: The type or namespace name 'Cinemachine' could not be found (are you missing a using directive or an assembly reference?)
Assets\game4automation\Professional\LogicStep_CinemachineCamera.cs(21,42): error CS0246: The type or namespace name 'CinemachineBlendDefinition' could not be found (are you missing a using directive or an assembly reference?)
1. Question:
Do I must install the game4automation asset every time when I start a new project?
After I saved it and opened the cell again I got following error:
If I press "Enter Safe Mode" it shows me the same error.
After I close the safe mode it loads some parts from game4automation. In the tab I have the new one with game4automation but only one entry and in the project I lose my game4automation asset.
What can I do to bring game4automation to run?
Or what do I wrong?
Best Tobias

I see, you seem to use latest beta - which has a bug and is not working without Cinemachine - please use the latest official release (2020.15).

Problem with collisions
Hello,
It's me again, I have a problem with a MU, I "spawn" This mu onto a transport surface in g4atransport. It stays in position and can be gripped by the gripper. But when the gripper places it into a warehouse (With a mesh collider) It just falls through the warehouse and floor.
Below are the warehouse settings and the carrier (MU) settings

It is hard to say what your problem is - everything should work out the box. Can you send your project with a description where the problem occurs and I will directly check in your projet.

Unity Editor NullReferenceException when clicking on GameObjects
Hello,
i am experiencing NullReferenceExceptions and out of Bounds - Debug.LogErrors in the Unity Editor with the Game4Automation Professional Package installed.
Steps to recreate the behaviour are
- take a empty project
- import the G4A Professional 2020.15 package
- click on the "PlasticBox" Gameobject
You will be flooded with following errors:
Retrieving array element that was out of bounds
UnityEditor.SerializedProperty:GetArrayElementAtIndex (int)
NaughtyAttributes.Editor.ReorderableListPropertyDrawer/<>c__DisplayClass6_0:b__2 (int) (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/PropertyDrawers_SpecialCase/ReorderableListPropertyDrawer.cs:78)
UnityEditorInternal.ReorderableList:CacheIfNeeded ()
UnityEditorInternal.ReorderableList:GetListElementHeight ()
UnityEditorInternal.ReorderableList:DoLayoutList ()
NaughtyAttributes.Editor.ReorderableListPropertyDrawer:OnGUI_Internal (UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent) (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/PropertyDrawers_SpecialCase/ReorderableListPropertyDrawer.cs:89)
NaughtyAttributes.Editor.SpecialCasePropertyDrawerBase:OnGUI (UnityEngine.Rect,UnityEditor.SerializedProperty) (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/PropertyDrawers_SpecialCase/SpecialCasePropertyDrawerBase.cs:32)
NaughtyAttributes.Editor.NaughtyEditorGUI:PropertyField_Implementation (UnityEngine.Rect,UnityEditor.SerializedProperty,bool,NaughtyAttributes.Editor.NaughtyEditorGUI/PropertyFieldFunction) (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/Utility/NaughtyEditorGUI.cs:47)
NaughtyAttributes.Editor.NaughtyEditorGUI:PropertyField_Layout (UnityEditor.SerializedProperty,bool) (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/Utility/NaughtyEditorGUI.cs:29)
NaughtyAttributes.Editor.NaughtyInspector:DrawSerializedProperties () (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/NaughtyInspector.cs:87)
NaughtyAttributes.Editor.NaughtyInspector:OnInspectorGUI () (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/NaughtyInspector.cs:47)
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
NullReferenceException: Object reference not set to an instance of an object
UnityEditor.PropertyHandler.GetHeight (UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, System.Boolean includeChildren) (at <3371b3e2e5754acd87e600e068350da5>:0)
UnityEditor.EditorGUI.GetPropertyHeightInternal (UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, System.Boolean includeChildren) (at <3371b3e2e5754acd87e600e068350da5>:0)
UnityEditor.EditorGUI.GetPropertyHeight (UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, System.Boolean includeChildren) (at <3371b3e2e5754acd87e600e068350da5>:0)
UnityEditor.EditorGUI.GetPropertyHeight (UnityEditor.SerializedProperty property) (at <3371b3e2e5754acd87e600e068350da5>:0)
NaughtyAttributes.Editor.ReorderableListPropertyDrawer+<>c__DisplayClass6_0.b__2 (System.Int32 index) (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/PropertyDrawers_SpecialCase/ReorderableListPropertyDrawer.cs:78)
UnityEditorInternal.ReorderableList.CacheIfNeeded () (at <3371b3e2e5754acd87e600e068350da5>:0)
UnityEditorInternal.ReorderableList.GetListElementHeight () (at <3371b3e2e5754acd87e600e068350da5>:0)
UnityEditorInternal.ReorderableList.DoLayoutList () (at <3371b3e2e5754acd87e600e068350da5>:0)
NaughtyAttributes.Editor.ReorderableListPropertyDrawer.OnGUI_Internal (UnityEngine.Rect rect, UnityEditor.SerializedProperty property, UnityEngine.GUIContent label) (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/PropertyDrawers_SpecialCase/ReorderableListPropertyDrawer.cs:89)
NaughtyAttributes.Editor.SpecialCasePropertyDrawerBase.OnGUI (UnityEngine.Rect rect, UnityEditor.SerializedProperty property) (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/PropertyDrawers_SpecialCase/SpecialCasePropertyDrawerBase.cs:32)
NaughtyAttributes.Editor.NaughtyEditorGUI.PropertyField_Implementation (UnityEngine.Rect rect, UnityEditor.SerializedProperty property, System.Boolean includeChildren, NaughtyAttributes.Editor.NaughtyEditorGUI+PropertyFieldFunction propertyFieldFunction) (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/Utility/NaughtyEditorGUI.cs:47)
NaughtyAttributes.Editor.NaughtyEditorGUI.PropertyField_Layout (UnityEditor.SerializedProperty property, System.Boolean includeChildren) (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/Utility/NaughtyEditorGUI.cs:29)
NaughtyAttributes.Editor.NaughtyInspector.DrawSerializedProperties () (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/NaughtyInspector.cs:87)
NaughtyAttributes.Editor.NaughtyInspector.OnInspectorGUI () (at Assets/game4automation/private/Tools/NaughtyAttributes/Editor/NaughtyInspector.cs:47)
UnityEditor.UIElements.InspectorElement+<>c__DisplayClass59_0.b__0 () (at :0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
My Setup:
- Unity 2020.3.33f1 LTS ( this also occures at the newest released Unity 2021.3 LTS Version )
- an empty Project
What did i try?
- Scripting Define Symbols are set
- the "game4automation -> apply standard settings" doesnt change anything
- deleting the current Version of NaughtyAttributes in the folder "Assets/game4automation/private/Tools" and importing the current release of NaughtyAttributes of github to the project
Everything is working as expected in old LTS Versions, like Unity 2020.3.19.

Navigation in Game Modus
Hallo Herr Strigl,
in meinem Projekt habe ich das game4automation asset hinzugefügt. Allerdings kann ich weder navigieren, noch reagiert der „Game“ Modus auf meine Mausklicks.
Wenn ich unter dem „Event System“ die „Add Default Input Modules“ lade wird mir folgender Fehler angezeigt. Wenn ich dies wie beschrieben ersetzte, funktionieren die Mausklicks in der „Game“ View aber bewegen kann ich mich immer noch nicht.

Game4Automation is using the old input system and it should work out off the box in an empty project. You don't need to add anything else - besides game4automation into your scene. Please check if your project settings are like this - specially active input handling and scripting define symbols:

Device Mapping in ABB
Hello,
I am working on connecting ABB robotstudio to game4automation, and I have a question about the device mapping. I have device mappings that go to +-120, How can I make this in robotstudio? I can only see it go up to 9 and then it becomes 1,1, 1,2 etc, does this count as 11,12 etc?
Another question, Do I have to create empties in robotstudio for every missing device map? I saw the page but didnt understand why you had to create that much empties.

Please try do do this. I am not able to test because currently I have not an ABB Robotstudio with your configuration. Hope it works.
Add Byte to Origin Data Type
and replace Line 167 following in ABBRobotStudioInterface by this:
if (signal.OriginDataType.ToUpper() != "BYTE")
{
if (signal.GetType() == typeof(PLCInputInt) || signal.GetType() == typeof(PLCOutputInt))
{
if (lastbit)
posmemory = posmemory + 1;
bit = 0;
shm.bit = 0;
lastbit = false;
signal.Comment = $"MD{posmemory}";
accessor.Write(posheader, (byte) 10);
shm.type = SIGNALTYPE.INT;
posmemory = posmemory + 4;
}
}
else
{ if (signal.GetType() == typeof(PLCInputInt) || signal.GetType() == typeof(PLCOutputInt))
{
if (lastbit)
posmemory = posmemory + 1;
bit = 0;
shm.bit = 0;
lastbit = false;
signal.Comment = $"M{posmemory}";
accessor.Write(posheader, (byte) 8);
shm.type = SIGNALTYPE.BYTE;
posmemory = posmemory + 1;
}
}

Hello Thomas,can I build an Android APP?
Hello Thomas,I connect my mobilephone with my PC through WIFI。But when I open PLCSIM advanced Interface in Android it does not appear a black window,so I can't connect my virtual PLC。If I want control my virtual PLC in Android what should I do?Can I do it?Thank you Thomas。

Hi, not all Interfaces are working on all Platforms. Unity is cross compiling to the destination platform but sometimes we need windows specific DLLs. PLCSim Advanced is not working on Android. But you could connect to it using the S7 interface. More information about platform limitations can be found here:
https://game4automation.com/documentation/current/platforms.html#Known-platform-limitations
Best regards
Thomas
Customer support service by UserEcho