Private functions are listed in external blueprints
Function is still visible from other blueprints when setting it to "Private". Is this a bug? How to properly hide a function from other blueprints?
(comments are locked)
|
Hi Slavq, I was able to reproduce this on my end and have entered a bug report, UE-22843, to be assessed by the development staff. answered Nov 02 '15 at 03:16 PM ![]() Hi NullBlack, This is still under assessment by the development staff. Unfortunately, however, our resources are currently dedicated elsewhere. I do not have a timeframe of when this will be addressed. Please can this be bumped up in priority? Aside from being a bug it's really important for usability if other people will be using your blueprints. Thanks. This bug still exists. Can you please get around to fixing this? Hi Willard720, At present our resources are dedicated elsewhere. As such I do not have a timeframe of when a fix will be made available. I have added an internal note that additional developers are experiencing this error, you can track the report's status as the issue is reviewed by our development staff here. Hi Adam, any news on this? 4.17 is upcoming and the bug is still backlogged since 4.9. Would be a great improvement to hide private functions in other blueprints - especially for marketplace content, where I don't want to confront the user with functions s/he actually must not call. This annoyance still persists in the end of 2017. Although it's not critical, it results in a noticeable loss of productivity due to the function library containing the name of every single Private-marked function out there. Is it really that hard to read the Access Specifier value and avoid populating the general library list with all non-internal Private functions? Admittedly, I haven't looked at the the code yet, but it seems like a very easy thing to fix. Any informations about when it will be fixed ? I have some functions that I want to hide from other developers, because I don't want them to use it. 4.18.3 here and same issue. Good to know that i m not stupid and my 20 years of experience are not wasted. lol It looks like there is a proposed fix for this issue ready for review and integration at https://github.com/EpicGames/UnrealEngine/pull/5248 . Can this be reviewed and integrated, please? Hi all, this problem persists in 4.21 and your URL is not founded David ^^ Any information about this and a possible fix? Yes, I actually tested that fix, and it didn't work for me, even when it was available online. So I'm guessing that it was pulled because it didn't work :( I am still waiting on a fix for this.
(comments are locked)
|
Follow this question
Once you sign in you will be able to subscribe for any updates here
But you can call it?
Ah, now I see that there is "Function '...' is private and cannot be called outside its class" warning, but it still does execute when calling it. I've thought that setting a function to Private will make it disappear from object's context menu. ... Well, at least there is this warning :)
I will move it to Bug Report as i think fact that private nodes are listed outside of class is a bug (or rather lack of implementation to hide them)
That depends on how you are calling it. If you have cast to a blueprint and call the function you are telling the blueprint to run the function, however you should not be able to make direct changes to that function from outside the blueprint. How are you attempting to interact with the blueprints in question?
The test case was something like this: Create blueprint A & B, in blueprint A make a private function. In blueprint B, Spawn Actor from Class (class A) and the function is visible after dragging wire off the spawn node output (reference to spawned object). When called, it displays this warning, but it executes (tested with one print string inside this private function)
Can you post a screenshot of your blueprints as well as the specific warning you are seeing?
Here, I've also created a demo project:
link text
After playing, the private function is called and executed, showing print string message on screen.
*bump*
They can even be overriden !
Not only are private functions visible and callable, you can actually override them in child-blueprints.
This is a consistent bug since UE 4.09. It would be nice, if it would get higher fix-priority.
Still an issue in 4.19.1
Still an issue in 4.20.3
This is a terrible bug. I'm on a large team, and it's important to be able to properly encapsulate functionality that should not be exposed to other Blueprints (including the Level Blueprint).
Private functions should not be callable from any Blueprints that are not of the exact class of the Blueprint defining the function.
Protected functions should not be callable from any Blueprints that are not either the exact class of the Blueprint defining the function, or of a derived class inheriting from the Blueprint defining the function.
The "Private" checkbox on variables works correctly, but the callability of functions needs to be fixed.