Difference between revisions of "Things to Avoid/ko"

From Neos Wiki
Jump to navigation Jump to search
(Created page with "=== User Root의 이름 또는 구조 === 네오스가 기능 업데이트를 하면서 User Root에 속한 아이템을 추가하거나 삭제할 수 있습니다. 이름이...")
(Created page with "피해야 할 방법: * Find Child By Name * Get Parent 또는 Get Child 노드등을 반복적으로 사용하여 슬롯 구조를 탐색")
Line 15: Line 15:
 
네오스가 기능 업데이트를 하면서 User Root에 속한 아이템을 추가하거나 삭제할 수 있습니다. 이름이나 구조에 의존하면, 문제가 발생할 수 있습니다. 예를 들자면, 최근 추가된 "Freeform Camera"를 처리하기 위해 새로운 슬롯이 추가되었습니다. 공교롭게도 사용자가 업데이트 이전에 수동으로 추가한 이름과 동일하다면, 연계된 기능에 문제를 일으킬것입니다.
 
네오스가 기능 업데이트를 하면서 User Root에 속한 아이템을 추가하거나 삭제할 수 있습니다. 이름이나 구조에 의존하면, 문제가 발생할 수 있습니다. 예를 들자면, 최근 추가된 "Freeform Camera"를 처리하기 위해 새로운 슬롯이 추가되었습니다. 공교롭게도 사용자가 업데이트 이전에 수동으로 추가한 이름과 동일하다면, 연계된 기능에 문제를 일으킬것입니다.
  
Things to avoid in this area:
+
피해야 할 방법:
 
* Find Child By Name
 
* Find Child By Name
* Repeated use of Get Parent / Get Child nodes to locate a slot using searching or understood hierarchy depths
+
* Get Parent 또는 Get Child 노드등을 반복적으로 사용하여 슬롯 구조를 탐색
  
 
Solutions for this area:
 
Solutions for this area:

Revision as of 04:44, 6 July 2021

Other languages:
Deutsch • ‎English • ‎日本語 • ‎한국어

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

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

개요

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

슬롯 이름과 구조

로직스나 구성요소를 통한 작업시, 외부 요소(아이템, 쉐이프 등)의 이름이나 구조적 형식을 이용한 참조를 피하세요. 슬롯의 이름(Slot.name)과 구조는 임의로 바뀔 수 있으며, 동일한 이름이나 구조를 쓰는 전혀 상관없는 슬롯을 참조할 수 도 있습니다.

아래에서 관련 예제와 문제 완화를 위한 방법과 대안을 정리해 두었습니다.

User Root의 이름 또는 구조

네오스가 기능 업데이트를 하면서 User Root에 속한 아이템을 추가하거나 삭제할 수 있습니다. 이름이나 구조에 의존하면, 문제가 발생할 수 있습니다. 예를 들자면, 최근 추가된 "Freeform Camera"를 처리하기 위해 새로운 슬롯이 추가되었습니다. 공교롭게도 사용자가 업데이트 이전에 수동으로 추가한 이름과 동일하다면, 연계된 기능에 문제를 일으킬것입니다.

피해야 할 방법:

  • Find Child By Name
  • Get Parent 또는 Get Child 노드등을 반복적으로 사용하여 슬롯 구조를 탐색

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.