コード例 #1
0
 void SendCallbacks(string callback, SpriteTouchData data)
 {
     foreach (var go in m_targetsCallback)
     {
         go.SendMessage(callback, data, SendMessageOptions.DontRequireReceiver);
     }
 }
コード例 #2
0
    // Update is called once per frame
    void Update()
    {
        //Check press
        if (m_pressed == false && IsPressed())
        {
            SpriteTouchData touchData = ComputeTouch();
            //check attack
            if (m_collider == touchData.colliderTouched)
            {
                m_pressed = true;
                SendCallbacks(m_onInputDownCallback, touchData);
            }
        }

        //Check Release
        if (m_pressed && IsReleased())
        {
            m_pressed = false;
            SpriteTouchData touchData = ComputeTouch();
            if (m_collider == touchData.colliderTouched)
            {
                SendCallbacks(m_onInputUpCallback, touchData);
            }
        }
    }
コード例 #3
0
    SpriteTouchData ComputeTouch()
    {
        SpriteTouchData touchData  = new SpriteTouchData();
        Vector3         worldPoint = Camera.main.ScreenToWorldPoint(CustomGetTouchPosition());

        touchData.touchPosition   = new Vector2(worldPoint.x, worldPoint.y);
        touchData.colliderTouched = Physics2D.OverlapPoint(touchData.touchPosition);
        touchData.sourceComponent = this;
        return(touchData);
    }