KorNoob 그런데, 게임내에서 동적으로 SkeletonAnimation의 SkeletonDataAsset을 변경하면, ArgumentException: RenderTextureDesc width must be greater than zero. 라는 오류가 발생합니다.
However, if I dynamically change the SkeletonDataAsset of SkeletonAnimation in the game, get the error [ ArgumentException: RenderTextureDesc width must be greater than zero ].

Sorry to hear you're having troubles! Could you please share the complete exception error message you received, including the stack trace (visible if you select the error in the Console window).

What code did you use to exchange the SkeletonDataAsset at runtime? Also, from where is this code called? It might be the wrong time in the update cycle when your SkeletonDataAsset replacement code is called.

I assume that you've had a SkeletonRenderTexture component at the GameObject where you repaced the SkeletonDataAsset at runtime, is this correct?

  • KorNoob hat auf diesen Beitrag geantwortet.
    Related Discussions
    ...

    Harald
    빠른답변과 노고에 감사드립니다.

    상황은 다음과 같습니다.
    이 화면은 스파인오브젝트의 부모오브젝트이며 이곳에 스파인 에셋 데이터를 배열로 가지고 있습니다.

    이 화면은 스파인오브젝트이며 해당오브젝트에 SkeletonRenderTexture 컴포넌트를 추가하였고 Color값에서 알파값을 150으로 설정하여 투명도를 조절하였습니다.

    코드는 다음과 같습니다.
    tar변수와 target모두 첫번째 스크린샷에 나온 TargetObject클래스이며 해당 클래스의 필드로 ironDemon이 있는데 이것이 바로 스파인 오브젝트의 참조값입니다.

            int offset = (NetworkClient.localPlayer.GetComponent<PlayerInterface>().currentGamePlayer == tar.player) ? 0 : 2;
            if(target.objectType == ObjectType.PLAYER){
                tar.ironDemon.GetComponent<SkeletonAnimation>().skeletonDataAsset = tar.ironDemonData[0+offset];
            }else{
                tar.ironDemon.GetComponent<SkeletonAnimation>().skeletonDataAsset = tar.ironDemonData[1+offset];
            }
            tar.ironDemon.GetComponent<SkeletonAnimation>().Initialize(true);

    이 화면은 오류가 발생했을 때 로그입니다.

    이 화면은 오류가 발생했을때 해당 스파인오브젝트의 SkeletonRenderTexture 컴포넌트입니다.

    @KorNoob Thanks for your detailed writeup. According to the error message and stack trace, it might likely be that the initial frame of the new SkeletonDataAsset is not showing anything, which will might lead to the required render texture height being 0. Could you please confirm whether this might be the case?

    Could you also please send us a minimal Unity project which still demonstrates this issue? You can send it to contact@esotericsoftware.com, briefly mentioning this forum thread URL so that we know the context. Then we can have a look at what's going wrong.

    • KorNoob hat auf diesen Beitrag geantwortet.

      Harald
      프로젝트 데이터가 조금 많아서, 따로 최소한의 기능만 구현하고 오류를 재현한 프로젝트를 생성해서 보내드리는데 기간이 조금 걸릴듯합니다.
      최대한 빠르게 오류가 재현되는 프로젝트를 만들어서 메일로 보내드리도록 하겠습니다.
      빠른답변과 지속적인 피드백 감사드립니다.

      @KorNoob Thanks, looking forward to the reproduction project.

      • KorNoob hat auf diesen Beitrag geantwortet.

        Harald
        안녕하세요. Harald. 요청하신 샘플 프로젝트를 첨부한 메일을 방금 보내드렸습니다.
        프로젝트에 대해 추가적인 요청이 필요한 경우, 답글을 달아주시면 확인하는대로 회신드리겠습니다.
        감사합니다.

        • Misaki hat auf diesen Beitrag geantwortet.
        • Nate gefällt das.

          KorNoob Thank you for sending us a repro project! I am afraid to say but that the data you sent us was much larger than we would generally expect. (677MB)
          When you send your Unity project to someone, it is enough to have Assets, Packages, and ProjectSettings in most cases, so if there is a next time, we would appreciate it if you could delete the Libarary folder and other unnecessary files before sending them to us.
          We will look into this and let you know if we find anything.

          • KorNoob hat auf diesen Beitrag geantwortet.

            Misaki
            아하 Libarary폴더를 삭제해야 했군요. 주의하도록 하겠습니다. 감사합니다.

            @KorNoob Thanks for sending the package. Please note that we requested a minimal Unity project which still demonstrates this issue, but your project and example scene contains a network manager with all kinds of unrelated things. Please understand that we don't have the time to debug your net-code for potential issues there.

            You need to boil down the issue to a reproduction scene which just uses one or two scripts which re-create the whole problem, with as few lines of code as possible, definitely without any network code involved. Then we can have a look at what's going wrong.

            @KorNoob For example, the reproduction example script would setup the skeleton with one SkeletonDataAsset assigned, then e.g. set fade-out opacity accordingly, then assigns a different SkeletonDataAsset in a way which lets the issue occur.

            • KorNoob hat auf diesen Beitrag geantwortet.

              Harald
              답변감사합니다 Harald.
              빠른시일내에 네트워크 코드를 없앤 프로젝트 파일를 다시 보내드리겠습니다.
              마지막에 달아주신 답변내용은 제가 SkeletonDataAsset을 교체할때 잘못된 방법을 사용한것이라고 해석하면 될까요? 번역기가 정확하게 번역하지못해서 이해하기가 조금 어렵습니다.

              • Harald hat auf diesen Beitrag geantwortet.

                @KorNoob Thanks for your understanding. Looking forward to the updated package.

                KorNoob 마지막에 달아주신 답변내용은 제가 SkeletonDataAsset을 교체할때 잘못된 방법을 사용한것이라고 해석하면 될까요? 번역기가 정확하게 번역하지못해서 이해하기가 조금 어렵습니다.

                No, I didn't mean that you used the wrong method, I just described that your reproduction project example scene should use just a simple script, as simple as possible. It was not intended to say that some method call is wrong in your code. It should just be minimal, without any unnecessary layers around it.

                • KorNoob hat auf diesen Beitrag geantwortet.

                  Harald
                  아하 이해했습니다. 자세한 설명 감사합니다 Harald.
                  그런데 재현 프로젝트를 변경하는 중에 발견한 것이 있습니다.
                  Scene에 이미 생성되어있는 스파인 오브젝트의 경우는 해당 오류가 재현되지않으나, 프리팹으로 만든 스파인 오브젝트를 런타임중에 Instantiate를 통해 생성된 스파인 오브젝트의 경우 해당 오류가 발생하는것을 확인하였습니다.
                  그래서 런타임중에 오브젝트 생성을 담당하는 SpawnManager class와, 스파인오브젝트의 애니매이션 과 SkeletonDataAsset 변경을 담당하는 TargetObject class를 만들게 되었습니다. 이 부분은 양해 부탁드립니다.
                  메일은 다시 보내드렸습니다.
                  감사합니다.

                  • Bearbeitet

                  @KorNoob Thanks very much for sending the new Unity reproduction project! Thanks for your work on making it truly minimal, this helps us a lot! We will get back to you here on the forum once we've figured out what's going wrong.

                  @KorNoob We just released a bugfix for this issue, both for SkeletonRenderTexture and SkeletonGraphicRenderTexture.

                  A new spine-unity unitypackage is available for download:
                  https://esotericsoftware.com/spine-unity-download
                  Please let us know if this fixes the issue for you as well. Thanks again for reporting!

                  Issue ticket URL for later reference:
                  EsotericSoftware/spine-runtimes2529

                    Harald
                    빠른 이슈 수정 감사합니다.
                    방금 저희 프로젝트에 적용하였고 완벽하게 작동하는 것을 확인하였습니다. 다시 한번 감사드립니다.

                    @KorNoob Very glad to hear it resolved the issue, thanks again for reporting!