Esempio n. 1
0
    public void InitiateCreatureGrabbed(TractionBeamController beamController)
    {
        objectGravity.SetGravity(false);
        rBody.velocity        = Vector3.zero;
        rBody.angularVelocity = Vector3.zero;


        // to prevent nulls in position or using old information to calculate release force, initializing all frames - currently disabled
        //for (int i = 0; i < lastPositions.Length; i++)
        //{
        //    lastPositions[i] = transform.position;
        //    lastPositionTimes[i] = 0;
        //}


        isCreatureTracted         = true;
        currBeamController        = beamController;
        relativeDistance          = Vector3.Distance(transform.position, currBeamController.transform.position);
        initialRelativeDistance   = relativeDistance;
        relativeDirection         = transform.position - currBeamController.transform.position;
        relativeDirection         = relativeDirection.normalized - currBeamController.transform.forward;
        relativeRotation          = Quaternion.identity * transform.rotation;
        controllerInitialRotation = beamController.controller_Event.transform.rotation;
        beamPFX = currBeamController.BeamPFX;
        //beamLengthFixer = currBeamController.beamLengthFixer;
        //beamPFX.startLifetime = relativeDistance * beamPFX.startSpeed * beamLengthFixer;
    }
Esempio n. 2
0
    public void ResetCreatureGrabbed()
    {
        //gameObject.SetActive(false);
        //gameObject.SetActive(true);
        objectGravity.SetGravity(true);
        isCreatureTracted  = false;
        currBeamController = null;

        // Detach creature from the UFO object and set its parent back to default.
        transform.parent = defaultParent.transform;

        // Enlarge the creature back to its original size.
        transform.localScale = defaultScale;

        // Turn the object's physics back on (seems to pernamently break physics).
        //GetComponent<Rigidbody>().isKinematic = true;
    }