예제 #1
0
    protected virtual void OnDirectionSelected(SetDirectionComponent direction)
    {
        //根据方向为对应的移动组件赋值
        if (direction == rightArrowComp)
        {
            item.gameObject.GetComponent <MoveItem>().moveDir = Vector2.right;
        }
        else if (direction == leftArrowComp)
        {
            item.gameObject.GetComponent <MoveItem>().moveDir = Vector2.left;
        }
        rightArrowComp.OnDirectionSelected -= OnDirectionSelected;
        leftArrowComp.OnDirectionSelected  -= OnDirectionSelected;

        Completation();
        setting = false;
    }
예제 #2
0
    protected virtual void Preparations()
    {
        derivedFromItem = false;

        GameObject itemDirectionComponent = GameObject.Find("ItemDirectionComponent");

        RightArrow = itemDirectionComponent.transform.Find("RightArrow").gameObject;
        LeftArrow  = itemDirectionComponent.transform.Find("LeftArrow").gameObject;
        GuideText  = itemDirectionComponent.transform.Find("GuideText").gameObject;
        RightArrow = Instantiate(RightArrow, item.transform);
        LeftArrow  = Instantiate(LeftArrow, item.transform);
        GuideText  = Instantiate(GuideText, item.transform);

        float itemXD, itemYD;
        var   itemSpriteRender = item.gameObject.GetComponent <SpriteRenderer>();

        if (itemSpriteRender != null)
        {
            Sprite itemSprite = itemSpriteRender.sprite;
            itemXD = itemSprite.rect.width * item.transform.localScale.x * 16 / Camera.main.pixelWidth;
            itemYD = itemSprite.rect.height * item.transform.localScale.y * 16 / Camera.main.pixelHeight;
        }
        else
        {
            itemXD = item.transform.localScale.x / 2;
            itemYD = item.transform.localScale.y / 2;
        }

        Vector2 itemPos = item.transform.position;

        RightArrow.transform.position = new Vector2(itemPos.x + itemXD + 1f, itemPos.y);
        LeftArrow.transform.position  = new Vector2(itemPos.x - itemXD - 1f, itemPos.y);
        GuideText.transform.position  = new Vector2(itemPos.x, itemPos.y + itemYD + 1f);

        rightArrowComp = RightArrow.AddComponent <SetDirectionComponent>();
        leftArrowComp  = LeftArrow.AddComponent <SetDirectionComponent>();

        rightArrowComp.OnDirectionSelected += OnDirectionSelected;
        leftArrowComp.OnDirectionSelected  += OnDirectionSelected;

        RightArrow.SetActive(true);
        LeftArrow.SetActive(true);
        GuideText.SetActive(true);
    }