Smart Replace는 고장난 프리 랩 링크를 복원하는 데 도움이되는 Unity 플러그인입니다. 그 외에도 장면의 사전 랩을 변경이나 객체 참조를 잃지 않고 동일한 스크립트를 포함하는 유사한 사전 랩으로 대체 할 수 있습니다.
플러그인을 사용하려면 Corrent .NET 버전을 프로젝트에 설정해야합니다. 그렇지 않으면 컴파일하지 않습니다 . File -> Build settings -> Other settings -> Configuration -> Scripting Runtime Version -> .NET 4.x Equivalent 통해 .NET 버전을 변경할 수 있습니다.
패키지를 다운로드하고 설치 한 후 Tools -> Replace prefab...
다음 예제는 플러그인의 주요 사용 사례를 보여줍니다. YouTube에는 플러그인을보다 생생하게 설명하는 비디오도 있습니다.

장면 객체의 restore a prefab link 하려면 먼저 장면 객체를 창의 해당 필드로 드래그하십시오. 다음으로 Unity Project Window에서 원래의 사전 랩을 찾아 fresh prefab 필드에 떨어 뜨립니다.
Transfer component values 에서 보존하려는 변경 사항이있는 모든 구성 요소를 선택할 수 있습니다. transform 값을 제외하고는 Unity 구성 요소의 설정은 현재 지원되지 않습니다.
이러한 설정이 이루어지면 Replace 누르면 장면에서 객체에 대한 변경 사항을 잃지 않고 프리 랩 링크가 복원됩니다.
게임 개발에서 종종 Dummy Prefab은 게임 elemt의 특정 기능을 테스트하기 위해 만들어집니다. 게임 개발의 후반 단계에서 더 예쁘게 모델, 텍스처, 셰이더 등을 사용 하여이 버튼의 더 나은 버전이 만들어집니다.
따라서 더미 프리 랩 만있는 레벨이 있지만, 모든 버전으로 교체하고 싶다면 Smart.replace가 도움을 줄 수 있습니다.
아래 이미지는 버튼과 도어가있는 장면을 보여줍니다. 버튼에는 Button Click 이라는 스크립트가있어 도어 객체에 대한 참조가 포함되어 있으므로 클릭하면 문을 열거 나 닫을 수 있습니다.

프로젝트보기에서 볼 수 있듯이 Button 1 이라는 또 다른 버튼 사전 결말도 있습니다. 약간 다르게 보이지만 ButtonClick 구성 요소도 포함되어 있으므로 현재 버튼처럼 사용할 수 있습니다. 이것은 교체하기에 좋은 후보이므로 먼저 장면 객체를 Smart.Replace 창에 삭제 한 다음 더 나은 버튼 사라지면 교체 후 도어 참조가 유지되고 replace 도달해야합니다.

버튼이 성공적으로 교체되었으며 여전히 도어를 참조하여 여전히 작동합니다!
이와 마찬가지로 integer 값, colors , strings 등과 같은 교체 중에 모든 구성 요소의 모든 설정을 유지할 수 있습니다.
Fresh prefab smart이므로 scene object 와 동일한 객체 계층을 가질 필요가 없습니다 .
지금 우리는 문을 교체하는 것은 어떻습니까? 문이 버튼으로 참조되지 않기 때문에 이것은 약간 까다로워 보입니다. 그러나 Smart.replace는 옵션 Transfer external references 활성화 할 때 수행합니다.
프로세스는 다시 동일합니다. 먼저 장면 객체를 선택한 다음 조립식을 선택합니다. 다시 우리는 교체를 치고 문이 다른 조립식으로 교체됩니다. 동시에, 버튼의 도어 참조가 업데이트됩니다.
Smart.replace는 외부 object 및 component 참조를 교체하는 객체에 대한 참조를 검색합니다. 가능한 참조에 대한 lists 과 arrays 도 검색하고 설명처럼 업데이트됩니다.
교체하고자하는 장면에서 유사한 물체가 있다면 하나씩하는 것이 지루할 것입니다.
Smart.replace는 유사한 객체를 검색하므로 한 번에 여러 객체를 교체 할 수 있습니다. 먼저 장면에서 객체를 선택한 다음 사전 랩을 선택하여 유사한 객체를 검색 할 수 있습니다. 기본적으로 필터가 없으므로 장면의 모든 객체가 표시됩니다. 이름 별 검색은 모든 객체의 이름이 비슷한 경우 매우 효율적입니다. 구성 요소를 검색 할 수도 있습니다.
이제 교체에 도달하면 모든 객체가 한 번에 교체됩니다. 그들이 서로에 대한 언급이 있다면, 그들은 또한 보존되었을 것입니다.
플러그인을 쉽게 사용하기 위해 알아야 할 몇 가지 제한 사항이 있습니다.
component intersection 완전성을 위해 Unity 구성 요소를 보여 주면 현재 그 가치를 유지할 수 없습니다. 유일한 예외는 자체 UI가있는 transform 구성 요소입니다 (아래 참조).one component type per object 으로 제한됩니다. 장면 객체에 동일한 유형의 여러 구성 요소가있는 경우 첫 번째 값 만 유지됩니다. 나머지는 폐기됩니다.object 에 대한 외부 참조가 유지됩니다. 그러나 외부 객체 참조는 교체 후 항상 parent 객체를 가리 킵니다. [email protected]으로 언제든지 저에게 연락 할 수 있습니다.