디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[🐣질문] 컴포넌트 활성화

ㅇㅇ(182.218) 2024.05.16 22:26:07
조회 152 추천 0 댓글 1
														


아래 코드로 calculatePrefab 활성화 하면

calculatePrefab 오브젝트 컴포넌트가 모두 비활성화로 되는데 

뭐가 문제일까여?ㅠㅠ

계속 몇시간째 해보는데 안대네영ㅠㅠ


using UnityEngine;

using UnityEngine.EventSystems;

using System.Collections;


public class DragUI : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler

{

    private RectTransform rectTransform;

    private GameObject dragObject;  // 드래그 중인 복사본 오브젝트

    private RectTransform dragObjectRectTransform;

    private BoxCollider2D dragObjectCollider; // 콜라이더 참조 추가

    private bool isPlaced = false;  // 복사본이 최종적으로 위치에 고정되었는지 여부


    public GameObject calculatePrefab;  // 새로운 프리팹 참조


    void Awake()

    {

        rectTransform = GetComponent<RectTransform>();

    }


    public void OnBeginDrag(PointerEventData eventData)

    {

        if (gameObject.tag == "calculate" && !isPlaced)

        {

            Debug.Log("Drag started with 'calculate'");


            // 프리팹을 사용하여 새로운 오브젝트 생성

            dragObject = Instantiate(calculatePrefab, transform.parent);

            Debug.Log("Instantiated new object: " + dragObject.name);


            // 루트 오브젝트를 강제로 활성화

            dragObject.SetActive(true);


            dragObjectRectTransform = dragObject.GetComponent<RectTransform>();

            dragObjectRectTransform.anchoredPosition = rectTransform.anchoredPosition;

            dragObjectRectTransform.sizeDelta = rectTransform.sizeDelta;

            dragObjectRectTransform.localScale = rectTransform.localScale;


            dragObjectCollider = dragObject.GetComponent<BoxCollider2D>();


            if (dragObjectCollider != null)

            {

                Debug.Log("Before enabling, Collider enabled: " + dragObjectCollider.enabled);

                StartCoroutine(EnableComponentsAfterDelay(dragObject));

            }

            else

            {

                Debug.LogError("No BoxCollider2D component found!");

            }


            dragObjectRectTransform.position = eventData.pointerPressRaycast.worldPosition;

            ObjectManager.Instance.ActivateCalculateObjects(); // 필요한 오브젝트 활성화

        }

    }


    private IEnumerator EnableComponentsAfterDelay(GameObject obj)

    {

        yield return new WaitForEndOfFrame(); // 프레임 끝날 때까지 대기하여 오브젝트가 완전히 초기화되도록 함


        // 모든 컴포넌트를 활성화

        foreach (var component in obj.GetComponents<Component>())

        {

            if (component is Behaviour behaviourComponent)

            {

                behaviourComponent.enabled = true;

                Debug.Log("Enabled component: " + behaviourComponent.GetType().Name);

            }

            else if (component is Collider2D colliderComponent)

            {

                colliderComponent.enabled = true;

                Debug.Log("Enabled component: " + colliderComponent.GetType().Name);

            }

            else if (component is Renderer rendererComponent)

            {

                rendererComponent.enabled = true;

                Debug.Log("Enabled component: " + rendererComponent.GetType().Name);

            }

            // 추가적으로 필요한 컴포넌트에 대한 활성화 코드를 추가할 수 있습니다.

        }


        Debug.Log("Components enabled.");

    }


    public void OnDrag(PointerEventData eventData)

    {

        if (dragObject != null && !isPlaced)  // 고정되지 않은 경우에만 드래그 업데이트

        {

            Vector3 globalMousePos;

            if (RectTransformUtility.ScreenPointToWorldPointInRectangle(dragObjectRectTransform, eventData.position, eventData.pressEventCamera, out globalMousePos))

            {

                dragObjectRectTransform.position = globalMousePos;

            }

        }

    }


    public void OnEndDrag(PointerEventData eventData)

    {

        if (dragObject != null && !isPlaced)

        {

            Collider2D hit = Physics2D.OverlapPoint(dragObjectRectTransform.position);

            if (hit != null && hit.gameObject.CompareTag("on_calculate"))

            {

                // 복사본 위치를 'on_calculate' 오브젝트 위치에 고정

                dragObjectRectTransform.position = hit.transform.position;

                isPlaced = true;  // 복사본 고정

                Debug.Log("Snapped to 'on_calculate' object at position: " + hit.transform.position);

            }

            else

            {

                // 복사본이 적절한 위치에 있지 않으면 파괴

                Destroy(dragObject);

                Debug.Log("Drag object destroyed");

            }

        }

    }



}



자동등록방지

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기
자동등록방지

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2864 설문 비난 여론에도 뻔뻔하게 잘 살 것 같은 스타는? 운영자 24/06/03 - -
2865 AD 호요버스 신작 <젠레스 존 제로> 7월 4일 오픈! 운영자 24/06/05 - -
2866 AD 세상의 패권을 거머쥘 자, 로드나인 사전등록 중 운영자 24/06/05 - -
161634 공지 취.업관련 이야기 금지 [8] 파베르Dev갤로그로 이동합니다. 24.06.05 238 4
159490 공지 인디 게임 개발 갤러리 규칙 - 질문 전 필독!! [25] 에뚜갤로그로 이동합니다. 24.05.10 855 3
52873 공지 게임제작 초심자를 위한 글 모음 [9] Goranic갤로그로 이동합니다. 20.07.02 64361 52
123789 공지 뉴비 개임개발 하려는데 뭐부터 해야하나요 복사본 [14] 흉황갤로그로 이동합니다. 23.04.11 12288 21
161713 🐣질문 유니티 playerprefs 질문 [2] 7월갤로그로 이동합니다. 10:01 48 0
161712 💬 6시간알바하는데도 힘들다 ㅇㅇ(118.221) 09:29 63 0
161711 💬 기획이 게임시스템 - gui 사이의 구현만 해주면 좋아죽을듯 [2] ㅇㅇ(211.210) 09:08 83 0
161710 💬 요즘 군대에서 하고있는거 [1] 딕걸갤로그로 이동합니다. 08:25 130 3
161708 💬 직장인 개발자잇음? [13] ㅇㅇ갤로그로 이동합니다. 07:50 271 1
161707 💬 1.5년 만에 재산 10배 불리는법 [1] ㅇㅇ(175.193) 07:06 145 0
161706 💬 Art of game design 이거 사려면 개정판으로 사는게 낫나요? ㅇㅇ(211.212) 06:29 46 0
161705 💬 전공으로 c++로 게임 만드는 강의듣고 있는데 ㅇㅇ(203.212) 04:55 72 0
161703 💬 인디는 기획플밍 겸직이 나은거같아 [8] ㅇㅇ(219.255) 04:20 210 0
161702 💬 기획 공부하는데 도움이 될만한 서적들 추천 좀 해주실 수 있나요 [2] 냐코갤로그로 이동합니다. 04:15 92 0
161701 💬 게임을 만들다보면 세상이 시뮬레이션이 아닌가 싶은 생각이든다. ㅇㅇ(106.253) 04:10 59 0
161700 💬 기획자 역량 증명하는 방법 [1] ㅇㅇ(175.192) 04:03 172 2
161699 💬 고도엔진 전도사가 되기까지 2년 [4] longZam갤로그로 이동합니다. 03:43 129 2
161697 💬 기획자 역량 증명하는 방법은 솔직히 [5] ㅇㅇ(182.211) 02:37 209 0
161696 💬 병원겜 구상해봄 [6] wlwlwl(220.124) 02:32 202 0
161694 📜일지 [Project BS] 십덕소울 개발일지 - 로자리아 보스전투 [20] mansu3갤로그로 이동합니다. 01:26 432 12
161693 💬 아트는 근데 어케 공부 하냐 보통 [18] 유나fan갤로그로 이동합니다. 01:24 252 0
161692 💬 은근 미녀 인디게임제작자 많더라 [1] ㅇㅇ(180.67) 01:13 290 0
161691 💬 수익비율 얘기하니까 미호요가 인상깊더라 [1] ㅇㅇ(182.211) 01:12 154 0
161690 💬 분리축(SAT)충돌검사를 사용해서 밀어내는 오브젝트 만들기 [4] vertex갤로그로 이동합니다. 01:04 108 6
161689 💬 방치형 게임 개발에 대해서 어케 생각함? [13] ㅇㅇ갤로그로 이동합니다. 00:57 234 1
161688 💬 글 다시올린데서 내가 말좀 심하게햇나 해서 지웟는데 [2] ㅇㅇ(182.211) 00:52 158 0
161686 💬 [팀원 모집] 방치 수집형 게임 같이 만들어가실 개발자분을 모집합니다. [18] ㅇㅇ(211.181) 00:04 466 4
161685 🐣질문 에셋으로 가져온 아틀라스가 미묘하게 중심이 안맞는데 [1] ㅇㅇ(112.187) 00:00 68 0
161682 📜일지 ATB 좋아해? 8 [1] 디시콘쓸려고만듦갤로그로 이동합니다. 06.05 83 6
161681 💬 게임개발할때 그거해야겠다 [1] ㅇㅇ(14.51) 06.05 121 0
161680 💬 너네는 게임잼에서 정규 프로젝트 된 작품 있음? [17] ㅆㅇㅆ(124.216) 06.05 277 0
161678 🐣질문 유니티 초보인데 스킬 관련해서 질문있습니다 [6] ㅇㅇ(121.135) 06.05 106 0
161677 💬 며칠전글인데 이글도 ㅈㄴ 웃김 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ [2] ㅇㅇ(182.211) 06.05 647 9
161675 💬 스팀 무료게임은 그냥 재미삼아 올린거지? [3] ㅇㅇ(118.44) 06.05 223 1
161674 💬 10초마다 자동으로 ctrl + s키 눌리는 프로그램 없냐? [15] ㅇㅇ갤로그로 이동합니다. 06.05 266 3
161673 💬 폰트 다들 어디서 구함? [4] ㅇㅇ(110.13) 06.05 146 0
161672 💬 UI쪽 애니메이션은 외주 받는 사람도 잘 없네 [3] ㅆㅇㅆ(124.216) 06.05 178 0
161671 💬 수박게임 할때마다 느끼는건데 ㅇㅇ(121.186) 06.05 124 0
161670 🐣질문 유니티 인증코드 메일이 안 와서 접속을 못함.. [2] ㅇㅇ(121.128) 06.05 72 0
161669 💬 애드몹 광고 매출 [1] ㅇㅇ(222.105) 06.05 138 0
161668 💬 아까 코드 물어보고 부끄사한 늅인뎅 [4] ㅇㅇ갤로그로 이동합니다. 06.05 204 0
161667 💬 일랜시아 같은 도트 찍어주는 gpt 언제나옴 ∀∈∧∋갤로그로 이동합니다. 06.05 116 0
161666 💬 게임 개발할 건 아니지만 그냥 궁금한 거 있는데 질문 좀 받아줘 [13] ㅇㅇ(125.137) 06.05 269 0
161665 💬 코드싸개 파트 끝나고 그림그리려니까 다시또 슬럼프온다 [1] ㅇㅇ(121.128) 06.05 147 0
161664 📚정보 언리얼 이거 알고들 있었냐? [9] ㅇㅇ(14.63) 06.05 262 1
161663 💬 유통 플랫폼들이 지원해주는 리더보드시스템.... [6] ㅇㅇ갤로그로 이동합니다. 06.05 110 0
161661 💬 님들 평소에 뭔겜함 [9] ㅇㅇ갤로그로 이동합니다. 06.05 215 0
161660 💬 멀티없는 게임에 전투과 비전투 중 뭐가 더 구현이 어려울까 [2] ㅇㅇ(221.146) 06.05 191 1
161659 💬 넥스트 페스트 참여해본 사람 있음? [2] ㅇㅇ(112.169) 06.05 156 0
161658 💬 유니티 2023 rigidbody2d 문서에 slide 생겼던데 [4] longZam갤로그로 이동합니다. 06.05 183 0
161657 💬 이제 모바일게임 수익창출은 답이 없을까요? [12] ㅇㅇ(210.95) 06.05 385 1
161656 💬 등장인물 이름 어캐 짓냐??????? [15] ㅇㅇ(211.192) 06.05 228 0
161655 💬 아래 코드 나는 이게 문제라고 생각함 [13] ㅆㅇㅆ(124.216) 06.05 321 0
161654 💬 자식 오브젝트 값이 부모 오브젝트 영향 주는게 말이 됨?? [8] smoopp갤로그로 이동합니다. 06.05 166 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2