Пример #1
0
    public override void Init()
    {
        player          = player != null ? player : transform;
        generateGravity = player != null?player.GetComponent <GenerateGravity>() : GetComponent <GenerateGravity>();

        resetPos           = player != null ? player.transform.position : new Vector3(2, 5, -5.6f);
        particleController = player != null?player.GetComponent <ParticlesControllerBase>() : GetComponent <ParticlesControllerBase>();

        ResetPlayer();
        RemoveListener();
    }
Пример #2
0
    private void Awake()
    {
        generateGravity = sphere != null?sphere.GetComponent <GenerateGravity>() : null;

        resetPos         = sphere != null ? sphere.transform.position : new Vector3(2, 5, -5.6f);
        resetTransParent = rotateTrans.parent;// sphere != null ? sphere.parent : null;
        aixController    = resetTransParent != null?resetTransParent.GetComponent <ShadowAixController>() : null;

        bodyController = newRotateTrans != null?newRotateTrans.GetComponent <BodyController>() : null;

        particleController = sphere != null?sphere.GetComponent <ParticlesControllerBase>() : null;

        if (bodyController != null)
        {
            rotateTransParent = bodyController.RotateTrans;
            resetTransParent  = bodyController.transform;
        }
    }
Пример #3
0
        public override void ToShootOff()
        {
            if (isToMoveCenter)
            {
                Collider[] colliders = OverlapColliders();
                if (colliders == null || colliders.Length <= 0)
                {
                    return;
                }

                for (int i = 0; i < colliders.Length; i++)
                {
                    if (colliders[i] == null || MyMathf.IsInLayerMask(colliders[i].attachedRigidbody.gameObject, colliderLayer) == false)
                    {
                        continue;
                    }

                    if ((triggerNum > 0 || triggerNum == -1) && !isMoveToCenter)
                    {
                        isMoveToCenter = true;

                        if (veiwModel != null)
                        {
                            veiwModel.gameObject.SetActive(false);
                        }

                        colliderRigidbody = colliders[i].attachedRigidbody;
                        colliderTrans     = colliderRigidbody.transform;
                        colliderGravity   = colliderTrans.GetComponent <GenerateGravity>();
                        if (colliderGravity)
                        {
                            colliderGravity.SetIsGravity = false;
                        }
                        colliderRigidbody.velocity = Vector3.zero;
                        isTrigger = true;
                        break;
                    }

                    break;
                }
            }
            else
            {
                Collider[] colliders = OverlapColliders();
                if (colliders == null || colliders.Length <= 0)
                {
                    return;
                }

                for (int i = 0; i < colliders.Length; i++)
                {
                    if (colliders[i] == null || MyMathf.IsInLayerMask(colliders[i].attachedRigidbody.gameObject, colliderLayer) == false)
                    {
                        continue;
                    }

                    if ((triggerNum > 0 || triggerNum == -1))
                    {
                        if (veiwModel != null)
                        {
                            veiwModel.gameObject.SetActive(false);
                        }

                        ToShootOff(colliders[i].attachedRigidbody);

                        if (SpringEvent != null)
                        {
                            SpringEvent?.Invoke(null);
                        }

                        if (triggerNum > 0)
                        {
                            triggerNum--;
                        }
                    }
                    break;
                }
            }
        }