[Unity 입문] Oculus Go에서 정지 그림을 모아서 애니메이션을 만들고 한 번 더 놀아요.


※ 그림을 클릭하면 유튜브 영상에 연결
동영상은 간단해...정지화도 쉬울 것 같은데..
반했어...
다만, 아직 그 이유를 모르니 이번엔 간단히 설명해 드리죠.
정지화만 준비하면 5~10분 정도 걸립니다.
해본 일
(1) Oculus용으로 설정
(2) Project를 사용하여 Assets에서 Resources라는 디렉토리 만들기
(3) Hierrarchy에 Image를 붙이고 OVRcameraRig 밑에 놓기
(4) Image 설정
(5) Image에 C#Script 부착
(6) C#Script의 내용
(7) 실행

(1) Oculus용으로 설정


① 이것은 지금까지와 마찬가지로 최초로 존재했던 카메라를 삭제한다
②Oculus-VR-Prefabs-OVRcameraRig을 Hierrarchy에 부착
③File-BuildSettings를 열고 Android를 선택하고 아래 SwitchPlatiform을 누르십시오
③PlaySettings를 누르고 Other Settings의 Package 이름을 변경하고 APIlevel 21 이상을 선택한 다음 XRsettings를 선택하고 Virtual Reality Supportec를 검사하고 Virtual Reality SDK's를 추가하여 Oculus를 선택합니다

(2) Project를 사용하여 Assets에서 Resources라는 디렉토리 만들기


Resources에 정지 그림을 넣고 C#Script를 Image에 건네면 그릴 수 있다는 게 이번 주류다.
① Assets 위에 커서를 놓고 마우스 오른쪽 버튼을 클릭하여 Folder 만들기
② Resources로 이름을 설정하고 Assets 밑에 둔다(처음부터 할 수 있을 것 같다)
③ Resources에 대한 정지 그림의 설정은 Assets-ImportNew Assets입니다.하나씩 넣을 수도 있지만 Resources는 원래 실제 Folder이기 때문에 거기에 정지 그림을 설정할 수도 있다.
④ Resources는 New Unity Project 산하의 Assets 산하에 있습니다.또한 프로젝트는 문서 아래에 있습니다.
※ 프로젝트 신설 시 프로젝트 카탈로그를 지정할 수 있으므로 쉽게 찾을 수 있는 곳에 배치하는 것이 좋습니다
④ 중요한 것은 설정된 정지 그림의 속성 변경이다.정지 그림을 누르면 TextureType이Default로 바뀌어 Sprite(2DandUI)로 변경됩니다.
현재 이 일은 하나하나 실시되었다.

(3) Hierrarchy에 Image를 붙이고 OVRcameraRig 밑에 놓기


여기까지의 설정은 다음과 같다. 특히 캔버스의 설정이 중요하다.

(4) Image 설정



(5) Image에 C#Script 부착


이것은 전에 한 것과 같다...Assets-C#Script를 통해 추가됩니다.
그리고 (6) 코드를 복사합니다.
그거 Image에 끌어다 놓을게요.

(6) C#Script의 내용


GetSprite.cs
using UnityEngine;
using UnityEngine.UI;

public class GetSprite : MonoBehaviour
{
    Image image;
    //[SerializeField]
    //private Sprite sprite;
    int i = 30;
    // Use this for initialization
    void Start()
    {
        image = this.GetComponent<Image>();
    }
    public static Sprite Load(string fileName, string spriteName)
    {
        // Resoucesから対象のテクスチャから生成したスプライト一覧を取得
        Sprite[] sprites = Resources.LoadAll<Sprite>(fileName);
        // 対象のスプライトを取得
        return System.Array.Find<Sprite>(sprites, (sprite) => sprite.name.Equals(spriteName));

    }
    void Update()
    {
        if (Time.frameCount % 120 == 0)
        {
            i++;
            var sp = i.ToString();
            image.sprite = Load("", sp);
         }
    }
}
【참고】
[Unity] 스플라인 이미지를 읽는 방법
Resources에서 슬라이싱된 Sprite를 가져오는 3가지 방법
[Unity 2D] Multiple Sprite를 동적으로 변경하는 방법
겸사겸사 말씀드리겠습니다.
//[SerializeField]
//private Sprite sprite;
당분간 실행할 필요는 없지만 디버깅을 위해 이 줄을 남겼다.
사용 방법은 이 줄을 이용하면 Image의 GetSprite에 Sprite를 입력하는 표시줄이 나타나고 거기에 그림을 넣으면 그 표시를 확인할 수 있으며 그림만 순조롭지 않다는 것이다.

(7) 실행


나는 실행할 수 있는 문제가 없다고 생각했지만 정지를 많이 그리면 실수가 생겨서 중간에 멈추었다.단순한 메모리 고갈일 수도 있지만 멈추면 프로젝트를 다시 만들어야 해서 귀찮아요.
그래서 5분도 안 걸려서 다시 만들 수 있어요...
다음은 유튜브 동영상 링크.
Unity: Pix2 Pix의 -png 파일을 범주 간에 변환하여 애니메이션 만들기

총결산


・정지 그림을 모아 애니메이션을 제작했다
・Resources에 넣으면 정지화를 자유롭게 사용할 수 있다.
・이것은 아래에서 Folder 지정을 다시 제작해서 가져올 수 있습니다.
・ 당초 많은 작업을 한 후에 이 작업을 진행할 때 리소스라고 하지만 프로젝트 이외의 Cache 산하의 프로젝트의 리소스에 속하는 이미지를 가져왔기 때문에 이 경우 디렉터리를 지정할 수 없습니다.이 원인은 아직 분명하지 않다.
만약 같은 상황이 된다면, 다시 처음부터 프로젝트가 다시 시작한 일이 가까워질 것이다.
※ 프로젝트 제작 시 카탈로그를 지정할 수 있으며, 알기 쉬운 곳을 선택하는 것이 좋습니다.
• 정지 그림의 속성은 수동으로 Default에서 Sprite로 변경되지만, 자동으로 변경하고 싶습니다

좋은 웹페이지 즐겨찾기