이런 방법은 피하세요

From Neos Wiki
Revision as of 04:01, 6 July 2021 by Mirpasec (talk | contribs) (Created page with "== 개요 == 무언가 문제가 생겼거나, 원하지 않은 결과가 나온다면 아이디어가 좋든 안좋든 커뮤니티나 팀원에게 문의해 보세요. 해...")
Jump to navigation Jump to search
Other languages:
Deutsch • ‎English • ‎日本語 • ‎한국어

네오스는 강력한 기능과 옵션등을 갖춘 환상적인 엔진입니다.하지만, 관행처럼 사용되는 몇가지 방식은 훗날 동작하지 않거나 문제를 일으킬 수 있습니다. 이 문서에서는 피해야 하거나 하면 안되는 것들에대한 것과 기술적인 이유 및 그 대안들을 제시하고 있습니다.

창작물을 개선하거나 또는 다른 사용자가 의도치 않은 문제를 발생 시키는 것을 막기 위해서 라도, 이 문서를 한번 쯤 읽어보시기 바랍니다.

개요

무언가 문제가 생겼거나, 원하지 않은 결과가 나온다면 아이디어가 좋든 안좋든 커뮤니티나 팀원에게 문의해 보세요. 해결되지 않거나 의견차가 존재하는 경우 이슈트래커에서 새 이슈를 생성하시기 바랍니다.

Slot Names & Structure

Avoid relying on Slot names or structure for items and slots that you don’t own or control within your LogiX or components. The names of slots and their structure for items you don’t own or control may change at any time and this can break things you’ve made.

Here are some examples of where this may occur and some alternatives or suggestions to attempt to mitigate the issues

Names or Structure of a User Root

Items may be added or removed from the User Root with the addition of new features or updates to features. So try not to rely on this structure or naming conventions that these slots have. Recently for example new Slots were added to a User root to cover the new "Freeform Camera".

Things to avoid in this area:

  • Find Child By Name
  • Repeated use of Get Parent / Get Child nodes to locate a slot using searching or understood hierarchy depths

Solutions for this area:

Names or Structure of an Avatar

Avatars are very complex creations.

Avoid:

  • Find Child By Name to locate avatar parts
  • Repeated use of Get Parent / Get Child nodes to locate avatar parts
  • Assuming the structure of an avatar
    • For example, head and hands avatars don't have an "Avatar Root"

Solutions in this area:

If you’d like to routinely find or acquire a slot in the User Root, consider requesting a new node or feature for it on our Issue Tracker.

Names or Structures of Other People’s Worlds

When visiting other user’s worlds it is very important to remember that you are a guest in their space. When creating gadgets, tools and avatars you should try to be respectful of their world.

Things to avoid:

  • Placing items in the root from Guns/Rockets and other items.
  • Assuming the setup of the world is standard in terms of hierarchy for things like spawn or lights etc.
  • Custom Culling systems or locomotion modules
  • Avoid Calling Dynamic Impulses to the Root Slot
  • Avoid placing Dynamic Variables in the Root Slot or World Variable Space
  • Avoid leaving items in the world when you leave. Clean up after yourself.

Solutions:

  • When using the Set Parent node with a Root Slot Parent, Instead Supply a “Local User Space” node this will function identically in most cases but will keep items parented correctly to any world management systems rather than littering the root.
  • Ask the world owner before spawning complex gadgets or modifying the world root.

Forcing Auto-Disabled Components to be Enabled

Occasionally when using a component you may find that it disables itself. This usually means that something in the component setup or the slot that it was added to is problematic and would cause the component to fail to function.

  • Do not drive the enabled checkbox/field to true in these cases
  • Consider reporting a bug on our Issue Tracker. These situations may be a problem that can be resolved.
  • Sometimes, these are actual miss-use of a component and may not be fixed.
  • Properties within components that start with _ may be changed or removed at anytime and should be avoided where possible.

Reference IDs / "Ref Hacking"

When building in Neos, it may be desirable to use reference ids to get around certain restrictions or feature gaps that exist within Neos. When doing this keep the following in mind:

  • Reference IDs may change at any time.
  • Certain uses of References may be considered a security issue and be fixed without much notice.

Generally, you should use dedicated nodes and concepts instead such as:

  • The Allocating User Node
  • Typed References and Casts

If you find yourself continually needing to use a certain reference id or path consider making a feature request on our Issue Tracker.

Using the ToString Node on Complex Data Types

When using the ToString node on non-primitive data types(e.g. NOT float,int,double etc), do not rely on the output of the node. It may change or be updated at any time. This includes things such as Data Types, Users, Slots etc.

Comparing strings for these items is brittle and may change with Neos Updates.

Instead:

If you find yourself continually needing to do this, consider making a feature request on our Issue Tracker.