Esempio n. 1
0
        private void LateUpdate()
        {
            if (bindType == FrameEventInfo.RoleAtkFrameEventData.BindType.BindAnimSlot)
            {
                if (bindSkeletonRenderer != null && bindSlotName != null)
                {
                    Vector3    worldPostion, worldScale;
                    Quaternion worldRotation;
                    if (bindSkeletonRenderer.TryGetSlotAttachmentCube(bindSlotName, out worldPostion, out worldScale, out worldRotation))
                    {
                        transform.position      = worldPostion;
                        transform.localScale    = new Vector3(worldScale.x, worldScale.y, transform.localScale.z); // z保持不变 add by TangJian 2018/12/5 17:43
                        transform.localRotation = worldRotation;

                        mainCollider.enabled = true;


                        if (Definition.Debug)
                        {
                            DebugManager.Instance.AddDrawGizmos("DamageController" + GetInstanceID(), () =>
                            {
                                bindSkeletonRenderer.DrawGizmosSlotAttachmentBox(bindSlotName);
                            });
                        }
                    }
                }
                else
                {
                    mainCollider.enabled = false;
                }
            }
            else if (bindType == FrameEventInfo.RoleAtkFrameEventData.BindType.BindObjectController)
            {
                if (ObjectController != null)
                {
                    transform.position   = ObjectController.transform.position;
                    mainCollider.enabled = true;
                }
            }
            else
            {
                mainCollider.enabled = true;
            }


            // 移除自己
            if (NeedRemoveSelf != null && NeedRemoveSelf())
            {
                NeedRemoveSelf = null;

                DelayFunc(() =>
                {
                    DamageManager.Instance.Remove(this);
                }, 0.01f);
            }

            if (OldPos == Vector3.zero && BeforePos == Vector3.zero)
            {
                OldPos = transform.position;
            }
            else
            {
//                if (Time.time-TimeRecord>0.1f)
//                {
                BeforePos = new Vector3(OldPos.x, OldPos.y, OldPos.z);
                OldPos    = transform.position;
//                    TimeRecord = Time.time;
//                }
            }
        }