Short Cake
8PM - Animal Crossing Wild World

사생활 보호 설정

https://gamjia.tistory.com

Mini Rooms

  • 내 미니룸
  • 미니미설정
  • 미니룸설정
  • 답글수 [0]

What Friends Say

한마디로 표현해봐~

1촌평 관리

퍼즐게임 개발일지 - 4

GamJia 2024. 2. 13. 17:29

퍼즐게임 개발일지 4편

게임 구성을 뒤엎어야 할거 같다;;

 

원래 Scroll View만 Canvas에 넣어두고

Cinemachine 때문에 그 외 요소는

Canvas 밖에 있었는데

같은 SpriteRenderer라고 해도

Canvas에 있느냐, 그 밖에 있느냐에 따라

사이즈가 달라지더라...

그래서 Scroll View가 있는 Canvas는

그대로 냅두고 World Space를 사용하는

Canvas(Background)를 만들었다

 

 

Canvas Render Mode를 World Space로 바꿔주고

사이즈를 맞춰주기 위해 0.01배로 줄여줬다

 

 

Prefab 퍼즐들은 World Transform을 사용하고

Image Component가 없어서 수정 해줄 것이다

 

사실 원래 sprite renderer 밖에 없어서

Image에 넣으려면 sprite renderer 안에 들어간

sprite를 복사해서 image에 넣어야하는데..

(그거를 퍼즐 수 만큼 하려니 짜증;;;;)

 

그래서 자동화 기능을 만들었다!!

 

 

using UnityEngine;
using UnityEditor;
using UnityEngine.UI;

public class SpriteToImageConverter : EditorWindow
{
    [MenuItem("Tools/Sprite to Image Converter")]
    public static void ShowWindow()
    {
        GetWindow<SpriteToImageConverter>("Sprite to Image Converter");
    }

    void OnGUI()
    {
        if (GUILayout.Button("Convert SpriteRenderers to Images"))
        {
            ConvertSpriteRendererToImage();
        }
    }

    private static void ConvertSpriteRendererToImage()
    {
        foreach (GameObject obj in Selection.gameObjects)
        {
            SpriteRenderer spriteRenderer = obj.GetComponent<SpriteRenderer>();
            if (spriteRenderer != null)
            {
                Image image = obj.GetComponent<Image>();
                if (image == null)
                {
                    image = obj.AddComponent<Image>();
                    image.sprite = spriteRenderer.sprite;
                    image.rectTransform.sizeDelta = new Vector2(spriteRenderer.sprite.bounds.size.x * 100, spriteRenderer.sprite.bounds.size.y * 100);
                    DestroyImmediate(spriteRenderer);
                }
            }
        }
    }
}

 

이 좋은게 공짜예요 공짜~~

 

 

사용방법


 

1. Asset/Editors 폴더를 하나 생성한다

 

2.Tools에 가서 방금 만든 기능을 활성화 해준다

 

3. 원래는 기본 sprite renderer 객체라서

rect transform이 아니라 그냥 transform이라서

sprite renderer에서 image로 변경할 객체를 전체

선택 해 준 다음 rect transform을 추가해준다

rect transform을 추가하고

Convert SpriteRenderers to Images를 클릭!

 

BAAAAAAAMMMMMM!!!!!

 

 

Image로 변환한 객체들을 다시 Prefab화 해주고

맛있게 써준다^^^^^^^

 

 

Sprite Renderer에서 Image로 옮기는 과정은

필요가 없어져서 지워주고

Awake에서 Prefab에 저장된

위치를 저장해준다(정답 위치 비교용)

 

 

위치가 잘 들어갔다이

갑자기 프로젝트를 엄청 뒤집어서

오늘 고칠거 투성이인데

약간 감기쓰가 나한테 키스할랑 말랑 중이라서

오늘은 적당히 사리고

낮에 깨끗한 정신 상태와 함께

빡코딩 해야겠다

 

감기조심 쿨쩍ㅠㅠ

'Game Develop' 카테고리의 다른 글

퍼즐게임 개발일지 - 6  (0) 2024.02.15
퍼즐게임 개발일지 - 5  (0) 2024.02.14
블로그를 수정해보자 - 3  (2) 2024.02.12
블로그를 수정해보자 - 2  (2) 2024.02.10
블로그를 수정해보자 - 1  (0) 2024.02.09