예제 #1
0
        void OnFrameChanged()
        {
            Editor.CharacterAnimation currentAnim = CharacterEditor.Instance.CurrentAnimation();
            if (currentAnim == null || currentAnim.hitBoxes.Count == 0)
            {
                _boxPanel.SetInteractible(false);
                _copyButton.interactable   = false;
                _typeDropdown.interactable = false;
                UpdateParameter();
                return;
            }
            Editor.HitBox currentHit = currentAnim.hitBoxes[CharacterEditor.Instance.SelectedHitId];
            int           frameId    = CharacterEditor.Instance.SelectedFrame;

            currentHit.EnsureBoxExists(frameId);
            Editor.Box currentBox = currentHit.boxesPerFrame[frameId];
            _enabledToggle.isOn = currentHit.enabledFrames[frameId];
            if (currentBox != null)
            {
                if (!(currentBox.pointOne.Equals(FixedVector3.Zero) && currentBox.pointTwo.Equals(FixedVector3.Zero)))
                {
                    _boxPanel.SetPoints(currentBox.pointOne, currentBox.pointTwo);
                }
                else if (_enabledToggle.isOn)
                {
                    OnBoxChanged();
                }
            }
            _boxPanel.SetInteractible(_enabledToggle.isOn);
            _copyButton.interactable   = _enabledToggle.isOn;
            _typeDropdown.interactable = true;
            UpdateParameter();
        }
예제 #2
0
        public void OnCopyButton()
        {
            Editor.HitBox currentHit  = CharacterEditor.Instance.GetHitBox(_hitsList.SelectedItem);
            Editor.Box    originalBox = currentHit.boxesPerFrame[CharacterEditor.Instance.SelectedFrame];

            copyFramesPanel.GetComponent <CopyFramesPanel>().Setup(originalBox, _hitsList.SelectedItem, true);
            copyFramesPanel.SetActive(true);
        }
예제 #3
0
        public void OnCopyButton()
        {
            Editor.CollisionBox currentCollision = CharacterEditor.Instance.GetCollisionBox(_collisionsList.SelectedItem);
            Editor.Box          originalBox      = currentCollision.boxesPerFrame[CharacterEditor.Instance.SelectedFrame];

            copyFramesPanel.GetComponent <CopyFramesPanel>().Setup(originalBox, _collisionsList.SelectedItem, false);
            copyFramesPanel.SetActive(true);
        }
예제 #4
0
        protected void UpdateBox(int boxId, Editor.Box box, bool isSelected)
        {
            GameObject obj      = boxObjects[boxId];
            Vector3    scale    = (box.pointTwo - box.pointOne).AsVector3();
            Vector3    position = box.pointOne.AsVector3() + scale * 0.5f;

            obj.transform.localScale    = scale;
            obj.transform.localPosition = position;
            obj.GetComponent <Renderer>().material.color = isSelected ? selectedColor : unselectedColor;
        }
예제 #5
0
 public void Setup(Editor.Box originalBox, int listId, bool isHitFrame)
 {
     this.originalBox = originalBox;
     this.isHitFrame  = isHitFrame;
     this.listId      = listId;
 }
예제 #6
0
 void SetBox(int boxId, List <Editor.Box> boxes, List <bool> enablings)
 {
     boxes[boxId]     = new Editor.Box(originalBox.pointOne, originalBox.pointTwo);
     enablings[boxId] = true;
 }