Exemple #1
0
    protected override void Awake()
    {
        base.Awake();

        _gravityHandler = gameObject.GetComponent <GravityHandler>();
        _rigidBody      = GetComponent <Rigidbody>();
    }
Exemple #2
0
 /// <summary>
 /// Get all neceassry components and activate all states
 /// </summary>
 private void Awake()
 {
     gravityController = GetComponent <GravityHandler>();
     rigidbody         = GetComponent <Rigidbody>();
     State             = PlayerState.Initialized;
     EnableState(PlayerState.Movable);
     EnableState(PlayerState.Turnable);
 }
    protected override void Awake()
    {
        base.Awake();

        _gravityHandler = gameObject.GetComponent <GravityHandler>();
        _gravityHandler.OnGravityChanged += OnGravitySwitched;

        _controller = gameObject.GetComponentInChildren <MinibotController>();
    }
    public void SimulatePath(Vector2 shipPosition, Vector2 shipVelocity, int length, int renderPoints)
    {
        StopCoroutine("FadeOut");

        sightLine = GetComponent <LineRenderer>();

        segmentCount = length;
        Vector2[] segments = new Vector2[segmentCount];
        Material  lineMat  = (Material)Resources.Load(materialName, typeof(Material));

        Color startColor = lineColor;
        Color endColor   = startColor;

        startColor.a         = 1;
        endColor.a           = 0;
        sightLine.startColor = startColor;
        sightLine.endColor   = endColor;
        sightLine.material   = lineMat;

        segments[0] = shipPosition;

        // The initial velocity
        Vector2 segVelocity = shipVelocity;

        for (int i = 1; i < segmentCount; i++)
        {
            float segTime = (segVelocity.sqrMagnitude != 0) ? segmentScale / segVelocity.magnitude : 0; //essetially segment distance over segment time = ship velocity

            //float segTime = Time.fixedDeltaTime * segmentScale;

            segVelocity += GravityHandler.SumFieldStrength(segments[i - 1]) * segTime;

            RaycastHit2D hit = Physics2D.Raycast(segments[i - 1], segVelocity, segmentScale, tMask);
            if (hit)
            {
                segments[i] = segments[i - 1] + segVelocity.normalized * hit.distance;
                segVelocity = segVelocity - GravityHandler.SumFieldStrength(segments[i - 1]) * (segmentScale - hit.distance) / segVelocity.magnitude;
                segVelocity = Vector2.zero;
            }

            else
            {
                segments[i] = segments[i - 1] + segVelocity * segTime;
            }
            //print(i + " " + segments.Length);
        }


        sightLine.positionCount = segmentCount / renderPoints;
        for (int i = 0; i < sightLine.positionCount; i++)
        {
            sightLine.SetPosition(i, segments[i * renderPoints]);
        }

        StartCoroutine("FadeOut");
    }
Exemple #5
0
 void OnTriggerEnter(Collider c)
 {
     if (!c.gameObject.GetComponent <Player>().justPorted)
     {
         ChangeGravityField.reset = true;
         GravityHandler.changeGravity(destination.GetComponent <Portal>().gravityAxis, destination.GetComponent <Portal>().gravityBool);
         StartCoroutine(c.gameObject.GetComponent <Player>().portedPlayer());
         c.gameObject.transform.position = destination.transform.position;
     }
 }
 /// <summary>
 /// Tries to set the rigidbody and gravity component if they are not set
 /// For more information about the functionality of reset take a look at http://docs.unity3d.com/ScriptReference/MonoBehaviour.Reset.html
 /// </summary>
 private void Reset()
 {
     if (rigidbody == null)
     {
         rigidbody = GetComponent<Rigidbody>();
     }
     if (gravityComponent == null)
     {
         gravityComponent = GetComponent<GravityHandler>();
     }
 }
Exemple #7
0
        public void OnTransition(State previousState, DaleStateHandler daleStateHandler)
        {
            Animator            animator            = daleStateHandler.animator;
            ThirdPersonMovement thirdPersonMovement = daleStateHandler.thirdPersonMovement;
            GravityHandler      gravityHandler      = daleStateHandler.gravityHandler;

            gravityHandler.Jump();
            Debug.Log("jumping transition");
            animator.SetBool("jump", true);
            animator.SetBool("run", false);
            animator.SetBool("movingBackward", false);
            thirdPersonMovement.enabled = false;
        }
        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();
            gravityHandler = (GravityHandler)target;

            if (GUILayout.Button("Add Handle"))
            {
                GameObject    newHandle     = CreateNewGravityHandle();
                GravityHandle gravityHandle = newHandle.GetComponent <GravityHandle>();
                gravityHandle.Parent = gravityHandler;
                gravityHandler.handles.Add(gravityHandle);
                EditorUtility.SetDirty(gravityHandler);
                EditorUtility.SetDirty(newHandle);
                //Jump to the newly created object in the editor, this way it can be edited right away
                Selection.activeGameObject = newHandle;
            }
        }
    public override void Use()
    {
        Registry.sfxManager.PlaySFX(Registry.sfxManager.SFXGravitySwitch);

        foreach (LevelObject levelObject in _linkedObjects)
        {
            if (levelObject == null)
            {
                continue;
            }

            Debug.Log("GOING THROUGH LINKEDOBJECTS");
            GravityHandler gravityHandler = levelObject.GetComponent <GravityHandler>();
            if (gravityHandler == null)
            {
                continue;
            }

            Debug.Log("GOING THROUGH GRAVITYHANDLER");
            gravityHandler.InvertGravity();
        }
    }
    void FixedUpdate()
    {
        position = this.transform.position;
        spaceRock.AddForce(GravityHandler.SumFieldStrength(position) * spaceRock.mass);

        //rotation
        velocity = spaceRock.velocity;
        if (spaceRock.velocity.x > 0)
        {
            facing = (Mathf.Atan(spaceRock.velocity.y / spaceRock.velocity.x)) * Mathf.Rad2Deg - 90f;
            transform.eulerAngles = new Vector3(0, 0, facing);
        }
        else if (spaceRock.velocity.x < 0)
        {
            facing = (Mathf.Atan(spaceRock.velocity.y / spaceRock.velocity.x)) * Mathf.Rad2Deg + 90f;
            transform.eulerAngles = new Vector3(0, 0, facing);
        }
        else
        {
            facing = 0;
        }
    }
Exemple #11
0
    // Update is called once per frame
    void Update()
    {
        position = this.transform.position;
        hotBod.AddForce(GravityHandler.SumFieldStrength(position) * hotBod.mass);

        if (planetType.ToLower() == "earth")
        {
            //Earth stuff
        }
        else if (planetType.ToLower() == "mars")
        {
            //Mars stuff
        }
        else if (planetType.ToLower() == "jupiter")
        {
            //jupiter stuff
        }
        else
        {
            //generic planet stuff
        }
    }
 void OnTriggerEnter(Collider c)
 {
     if (!c.gameObject.GetComponent <Player>().justPorted&&change)
     {
         otherCGF.change = false;
         if (GravityHandler.currentGravityBool == gravityBool1 && GravityHandler.currentGravityAxis.Equals(gravityAxis1))
         {
             GravityHandler.changeGravity(gravityAxis2, gravityBool2);
             StartCoroutine(c.gameObject.GetComponent <Player>().portedPlayer());
         }
         else
         {
             GravityHandler.changeGravity(gravityAxis1, gravityBool1);
             StartCoroutine(c.gameObject.GetComponent <Player>().portedPlayer());
         }
     }
     else if (!c.gameObject.GetComponent <Player>().justPorted&& !change)
     {
         otherCGF.change = true;
         change          = true;
     }
 }
Exemple #13
0
    // ************************************************************************************
    // MAIN
    // ************************************************************************************
    void Awake()
    {
        rigidbody.freezeRotation = true;
        rigidbody.useGravity     = false;

        _gravityHandler = GetComponent <GravityHandler>();
        if (_gravityHandler == null)
        {
            Debug.LogError("gravityHandler was not found!");
        }

        _capsuleCollider = GetComponent <CapsuleCollider>();
        if (_capsuleCollider == null)
        {
            Debug.LogError("capsule collider was not found!");
        }

        _playerScript = GetComponent <Minibot>();
        if (_playerScript == null)
        {
            Debug.LogError("player not found!");
        }
    }
Exemple #14
0
 // Update is called once per frame
 protected virtual void FixedUpdate()
 {
     position = transform.position;
     rb.AddForce(GravityHandler.SumFieldStrength(position) * rb.mass);
 }
 void Start()
 {
     animator            = FindObjectOfType <Animator>();
     characterController = FindObjectOfType <CharacterController>();
     gravityHandler      = FindObjectOfType <GravityHandler>();
 }
Exemple #16
0
 private void Awake()
 {
     AvatarGravity  = GetComponent <GravityHandler>();
     wayPointSystem = GetComponent <WayPointSystem>();
 }
Exemple #17
0
    void FixedUpdate()
    {
        //stun and hit manager
        if (beingHit == true)
        {
            timeSinceHit = 0;
            stunned      = true;
        }
        else if (beingHit == false && timeSinceHit < stunTime)
        {
            stunned = true;
            timeSinceHit++;
        }
        else
        {
            stunned = false;
        }

        //turret cooldown
        if (firing)
        {
            timeSinceFiring = 0;
            cooling         = true;
        }
        else if (!firing && timeSinceFiring < coolTime)
        {
            cooling = true;
            timeSinceFiring++;
        }
        else
        {
            cooling = false;
        }

        //Pause menu (give to game manager)
        if (Input.GetButtonDown("Pause"))
        {
            if (!MenuScreen.activeSelf)
            {
                MenuScreen.SetActive(true);
                MenuScreen.GetComponent <ExtranousMenu>().PauseMenu();
                Time.timeScale = Mathf.Epsilon;
                mainC.GetComponent <AudioReverbFilter>().enabled  = true;
                mainC.GetComponent <AudioLowPassFilter>().enabled = true;
            }
            else
            {
                Time.timeScale = 1;
                mainC.GetComponent <AudioReverbFilter>().enabled  = false;
                mainC.GetComponent <AudioLowPassFilter>().enabled = false;
                MenuScreen.SetActive(false);
            }
        }

        //Primary fire
        if (stunned == false && cooling == false)
        {
            disabled = false;
        }
        else
        {
            disabled = true;
        }

        //hit = beam.BeamFire(PrimaryFire(usingGamepad), !disabled, pew);


        //Player Acceleration Input
        inputAxis = AccelAxis();
        position  = transform.position;
        shipBod.AddForce(GravityHandler.SumFieldStrength(position) * shipBod.mass);
        direction      = velocity.normalized;
        accelMagnitude = accelRate * inputAxis;
        acceleration   = accelMagnitude * direction;
        shipBod.AddForce(acceleration * shipBod.mass);

        //rotation
        velocity = shipBod.velocity;
        if (shipBod.velocity.x > 0)
        {
            facing = (Mathf.Atan(shipBod.velocity.y / shipBod.velocity.x)) * Mathf.Rad2Deg - 90f;
            transform.eulerAngles = new Vector3(0, 0, facing);
        }
        else if (shipBod.velocity.x < 0)
        {
            facing = (Mathf.Atan(shipBod.velocity.y / shipBod.velocity.x)) * Mathf.Rad2Deg + 90f;
            transform.eulerAngles = new Vector3(0, 0, facing);
        }
        else
        {
            facing = 0;
        }

        //ship trajectory prediction
        var lineDraw = GetComponent <TrajectoryPredict>();

        lineDraw.SimulatePath(position, velocity, 200, 2);

        //turret rotation and aim
        turret.transform.up = Quaternion.Euler(new Vector3(0, 0, TurretFacing())) * Vector2.up;

        //turret firing
        var turretBehaviorScript = turret.GetComponent <TurretBehavior>();

        if (!disabled)
        {
            if (SecondaryFire())
            {
                turretBehaviorScript.ProjectileTrajectory();
                triggerPressed = true;
            }
            else if (!SecondaryFire() && triggerPressed == true)
            {
                turretBehaviorScript.ProjectileFire();
                triggerPressed = false;
                firing         = true;
            }
        }
        else
        {
            firing = false;
        }

        //Health and damage
        if (health <= 0 || transform.position.magnitude >= deathField)
        {
            StartCoroutine(deathSequence());
        }

        //Animation
        if (inputAxis > 0)
        {
            if (!thrusterBaseAudio.isPlaying)
            {
                thrusterBaseAudio.Play();
            }
            justAccelerated = true;

            for (int i = 0; i < thrustersBackLeft.Length; i++)
            {
                thrustersBackLeft[i].SetBool("accelerating", true);
                thrustersBackRight[i].SetBool("accelerating", true);
            }
            for (int i = 0; i < thrustersFrontLeft.Length; i++)
            {
                thrustersFrontLeft[i].SetBool("accelerating", false);
                thrustersFrontRight[i].SetBool("accelerating", false);
            }
        }
        else if (inputAxis < 0)
        {
            if (!thrusterBaseAudio.isPlaying)
            {
                thrusterBaseAudio.Play();
            }
            justAccelerated = true;

            for (int i = 0; i < thrustersBackLeft.Length; i++)
            {
                thrustersBackLeft[i].SetBool("accelerating", false);
                thrustersBackRight[i].SetBool("accelerating", false);
            }
            for (int i = 0; i < thrustersFrontLeft.Length; i++)
            {
                thrustersFrontLeft[i].SetBool("accelerating", true);
                thrustersFrontRight[i].SetBool("accelerating", true);
            }
        }
        else
        {
            if (justAccelerated == true)
            {
                thrusterBase.AddComponent <AudioFade>().fullVolume = 0.5f;
            }
            justAccelerated = false;

            for (int i = 0; i < thrustersBackLeft.Length; i++)
            {
                thrustersBackLeft[i].SetBool("accelerating", false);
                thrustersBackRight[i].SetBool("accelerating", false);
            }
            for (int i = 0; i < thrustersFrontLeft.Length; i++)
            {
                thrustersFrontLeft[i].SetBool("accelerating", false);
                thrustersFrontRight[i].SetBool("accelerating", false);
            }
        }
    }
Exemple #18
0
 void Start()
 {
     animator       = FindObjectOfType <Animator>();
     gravityHandler = FindObjectOfType <GravityHandler>();
 }
Exemple #19
0
 private void Start()
 {
     instance   = this;
     attractors = FindObjectsOfType <Attractor>();
 }
Exemple #20
0
 void Start()
 {
     g = GameObject.FindGameObjectsWithTag("GH")[0].GetComponent <GravityHandler>();
 }