아래 상황이면 이벤트를 수신 못하는데


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
 
public class PlayerMoveEvent : EventBase<PlayerMoveEvent>
{
    public float m_Speed;
    public static PlayerMoveEvent GetPooled(float speed)
    {
        PlayerMoveEvent val = EventBase<PlayerMoveEvent>.GetPooled();
 
        val.m_Speed = speed;
 
        return val;
    }
    private void LocalInit()
    {
        bubbles = true;
        tricklesDown = true;
 
 
        m_Speed = 0.0f;
    }
    protected override void Init()
    {
        base.Init();
        LocalInit();
    }
    public PlayerMoveEvent()
    {
        LocalInit();
    }
}
cs



EventBase를 PointerEventBase로 바꿔주면 해당 visualElement위에 포인터가 올라가있으면

이벤트를 수신함.....



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
 
public class PlayerMoveEvent : PointerEventBase<PlayerMoveEvent>
{
    public float m_Speed;
    public static PlayerMoveEvent GetPooled(float speed)
    {
        PlayerMoveEvent val = EventBase<PlayerMoveEvent>.GetPooled();
 
        val.m_Speed = speed;
 
        return val;
    }
    private void LocalInit()
    {
        bubbles = true;
        tricklesDown = true;
 
 
        m_Speed = 0.0f;
    }
    protected override void Init()
    {
        base.Init();
        LocalInit();
    }
    public PlayerMoveEvent()
    {
        LocalInit();
    }
}
cs



EventBase와 PointerEventBase의 차이점은 알겟는데


이벤트수신여부가 달라지는부분을 못찾겟음 이부분을 봐야 수신할수있게바꿀수있을거같은데

문제는 포인터이벤트도 그조건이 어디있는지도 모르겟다는거


외부에서 처리해주나?