728x90

원하는 것: 버튼 누르면 위로 촤라락 펼쳐지게 하기.

방법
1. 유니티 AssetStore에서 LeanTween 다운 받고 import하기.
2. 소스짜기.

using UnityEngine;  
using UnityEngine.UI;

public class SpreadObj : MonoBehaviour  
{  
    public GameObject mainButton;  
    public GameObject[] subButtons;  
    private bool areSubButtonsVisible = false;

    public void ToggleSubButtons()
    {
        areSubButtonsVisible = !areSubButtonsVisible;

        if (areSubButtonsVisible)
        {
            // 서브 버튼을 보이게 하고 슬라이딩 효과로 배치
            SetSubButtonsActive(true);
            SlideSubButtons(); // 최종 위치 설정
        }
        else
        {
            SlideSubButtons(true);
            // 서브 버튼을 숨기고 초기 위치로 순서대로 빨려들어가는 효과
        }
    }

    void SetSubButtonsActive(bool isActive)
    {
        foreach (GameObject subButton in subButtons)
        {
            subButton.SetActive(isActive);
        }
    }

    void SlideSubButtons(bool isReverse = false)
    {
        for (int i = 0; i < subButtons.Length; i++)
        {
            RectTransform rectTransform = subButtons[i].GetComponent<RectTransform>();

            float mainBtnPosY = mainButton.GetComponent<RectTransform>().anchoredPosition.y;

            if (isReverse)
            {
                LeanTween.moveLocalY(rectTransform.gameObject, mainBtnPosY, 0.3f)
                    .setEase(LeanTweenType.easeInBack);
            }
            else
            {
                float targetPosition = mainBtnPosY+((i+1)*150);
                LeanTween.moveLocalY(rectTransform.gameObject, targetPosition, 0.3f)
                    .setEase(LeanTweenType.easeOutBack)
                    .setDelay(0.1f * i);
            }
        }
    }
}

3. mainButton에 트리거 버튼 넣기, subButtons에 펼쳐질 버튼들 넣기.
4. 확인하기

펼침 <-> 모으기

728x90

일단 class 파일을 만든다.

[System.Serializable]
public class WeaponData
{
public string nameEN;
public string nameKR;
public string desc; // 설명
public StatData[] levelStat;
public int level;

public WeaponData(WeaponData data){
    this.nameEN = data.nameEN;
    this.nameKR = data.nameKR;
    this.desc = data.desc;
    this.levelStat = data.levelStat;
    this.level = data.level;
}

}


// weaponData : 복사할 데이터
WeaponData[] weaponData = GameManager.instance.abilityDatabase.weapons;
// weaponCopyData : 복사된 데이터
WeaponData[] weaponCopyData = new WeaponData[weaponData.Length];

for (int i = 0; i < aa.Length; i++)
{
weaponCopyData[i] = new WeaponData(weaponData[i]);
}


이런 식으로 하면된다.
변수가 많으면 좀 귀찮긴해도 한 번만 만들어 두면 된다.

728x90

문제 : 잘되던 vscode가 open C# Project를 해도 반응없음.
원인 : vscode의 위치를 옮겼다.

1. 다시 원래 위치로 옮긴다.
2. 그게 싫으면 mac 기준으로 Unity > Settings로 Preferences를 열어준다.
    - window는 Edit에 있을 것임.

 

3. External Tools > External Script Editor에 이미 Visual Studio Code가 들어가 있겠지만 Browe로 경로를 다시 맞춰서 넣어준다

 


하지만 난 vscode파일 위치를 되돌렸다. 경로를 바꾸니 vscode에서 또 다른 경로 수정들이 있어서(나의 경우에는..) 귀찮아서 그냥 되돌림

 


2024-09-05

또 지랄났다. 

이번엔 알고보니 이름때문이었다.

Visual Studio Code 2로 되어 있었어가지고 뒤에 이름 지웠다. 

 

어디서 봤는데 이름이 Visual Studio Code로 되어 있어야 한다고 했다.

728x90

문제 : Edit에 있던 preferences가 안보인다.
해결 : Edit이 아닌 Unity > Settings 에 있다... 

728x90

Edit > Project Settings > Script Execution Order 에서 + 버튼으로 스크립트 추가한다.
숫자가 낮을 수록 먼저 실행된다.
유니티가 자동으로 하고 있는 시스템이기 때문에 왠만하면 건드리지 않는 것으로.
- 나의 경우에는 오브젝트들을 총괄하는 GameManager의 셋팅이 너무 후순위라서 해놓았다. 

728x90
728x90

아카이브 유틸리티 > Dock에서 초록색 유틸리티 선택 > 상단 도구바 > 아카이브 유틸리티 > 설정 > 가능하다면 계속 압축 해제하기를 해제하기

728x90

문제: 프로젝트를 만들었더니 갑작스럽게 이 에러가 막 올라왔다.

해결: Project Settings > Services > Version Control을 off로

+ Recent posts