202/08/09 TIL

김도현·2023년 8월 9일
0

TIL

목록 보기
17/76

금일 배운 것

어제 해결하지 못한 문제

2023/08/08 TIL의 마지막 부분 openStage_2와 openStage_3를 추가시 발생하는 오류

ArgumentNullException: Value cannot be null.
Parameter name: _unity_self
UnityEditor.SerializedObject.FindProperty (System.String propertyPath) (at <bf6080dbf0564cf1b405dfd6e0dac725>:0)
UnityEditor.UIElements.Bindings.SerializedObjectBindingContext.BindPropertyRelative (UnityEngine.UIElements.IBindable field, UnityEditor.SerializedProperty parentProperty) (at <68ddc6fd093848298397957a5969af5e>:0)
UnityEditor.UIElements.Bindings.SerializedObjectBindingContext.BindTree (UnityEngine.UIElements.VisualElement element, UnityEditor.SerializedProperty parentProperty) (at <68ddc6fd093848298397957a5969af5e>:0)
UnityEditor.UIElements.Bindings.SerializedObjectBindingContext.ContinueBinding (UnityEngine.UIElements.VisualElement element, UnityEditor.SerializedProperty parentProperty) (at <68ddc6fd093848298397957a5969af5e>:0)
UnityEditor.UIElements.Bindings.DefaultSerializedObjectBindingImplementation+BindingRequest.Bind (UnityEngine.UIElements.VisualElement element) (at <68ddc6fd093848298397957a5969af5e>:0)
UnityEngine.UIElements.VisualTreeBindingsUpdater.Update () (at <a053cdfb5a094ce2b5935515091f978f>:0)
UnityEngine.UIElements.VisualTreeUpdater.UpdateVisualTreePhase (UnityEngine.UIElements.VisualTreeUpdatePhase phase) (at <a053cdfb5a094ce2b5935515091f978f>:0)
UnityEngine.UIElements.Panel.UpdateBindings () (at <a053cdfb5a094ce2b5935515091f978f>:0)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.UpdateSchedulers () (at <a053cdfb5a094ce2b5935515091f978f>:0)
UnityEngine.UIElements.UIEventRegistration.UpdateSchedulers () (at <a053cdfb5a094ce2b5935515091f978f>:0)
UnityEditor.RetainedMode.UpdateSchedulers () (at <68ddc6fd093848298397957a5969af5e>:0)

해결방법

GameObject에 아무것도 안 들어있어서 발생하는 문제 NULL이라고 뜸 자세히 찾아보니 대소문자 틀림

git 문법

1. git cherry-pick

git cherry-pick 커밋해시이란 다른 브랜치에 있는 커밋을 들고오는 것
main에 있든 어디에 있든 들고온다 -> cherry-pick으로 들고온 커밋은 해시가 바뀐다.
But!! 바로 앞에 병합된 커밋은 들고오지 못한다. 실행해보면 옵션 -m을 사용해라는데 뜬다.

-m <parent-number>
--mainline <parent-number>
Usually you cannot cherry-pick a merge because you do not know which side of the merge should be considered the mainline. This option specifies the parent number (starting from 1) of the mainline and allows cherry-pick to replay the change relative to the specified parent.

안되는 이유 : merge 커밋의 메인라인의 부모가 무엇인지 모르기 때문에 안됨 1(메인 라인)부터 시작하는 부모 번호를 설정해주면 된다.

C# 문법

팀원의 문법
gameManager.cs

public Member focusedMember;
	void Start()
    {
        focusedMember.MemberClicked()
    }
	public void ChangeFocus(Member FocusMember)
    {
        focusedMember.anim.SetBool("isFocused", false);
        FocusMember.anim.SetBool("isFocused", true);
        focusedMember = FocusMember;
    }

Member.cs

public class Member : MonoBehaviour
{
    public string initial;
    public Animator anim;

    // Start is called before the first frame update
    void Start()
    {
        initial = gameObject.name.Substring(gameObject.name.Length - 3);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    public void MemberClicked()
    {
        gameManager.I.ChangeFocus(this);
    }
}

시작시 gameManager에 있는 focusedMember.MemberClicked() 를 실행하여
Merber안에 있는 MemberClicked를 실행 바로 gameManager안에 있는 ChangeFocus호출(자기를 Member클래스 형태로 넣음)

	public void MemberClicked()
    {
        gameManager.I.ChangeFocus(this);
    }
	public void ChangeFocus(Member FocusMember)
    {
        focusedMember.anim.SetBool("isFocused", false);
        FocusMember.anim.SetBool("isFocused", true);
        focusedMember = FocusMember;
    }

금일 발생한 문제

빠르게 카드를 클릭하여 제거시 게임 종료가 안되는 문제

게임을 종료하는 조건이 카드를 비교하여 맞췄을시 남은 카드가 1개이면 종료된다.
But!! 2개이상 있을 때 빠르게 매치시 Distroy가 1초 뒤에 실행되는 문장으로 인해 제거되기전에 남은 카드수 count 및 비교가 실행되버려 정상적으로 종료되지 않는다. 현재 해결방법으로는 Distroy의 시간을 줄이던가 따른 if문 또는 다른 로직을 짜야 될 것 같다. 좀 더 생각을 하여 방법을 찾고 없을 시 순차적으로 구현 해볼 것

애니메이션으로 position 변경 시 발생하는 문제

카드 애니메이션 화면 밖에서 안으로 들어오는 애니메이션을 구현할려고 하였다.
But!! 문제발생
애니메이션으로 position을 변경하였더니 게임의 카드배치가 0,0으로 고정되어 버렸다
rotation이나 scale을 변경하였을시엔 문제가 없지만 position을 변경하면 무조건 고정되어 버린다. 현재 구글링을 통해 해결방법 및 원인 찾는중

0개의 댓글