Esempio n. 1
0
    void FixedUpdate()
    {
        GameObAndFloat goaf = FindClosestGrapple();

        if (grappling)
        {
            rb.velocity = (goaf.GO.transform.position - this.gameObject.transform.position) * grappleSpeed;
        }

        if (rb.velocity.x > 0)
        {
            this.transform.localScale = new Vector3(1, 2, 1);
        }

        else
        {
            this.transform.localScale = new Vector3(-1, 2, 1);
        }

        if (Input.GetKeyDown("r"))
        {
            SceneManager.LoadScene(0);
        }

        UpdateRendering(goaf);
    }
Esempio n. 2
0
    public GameObAndFloat FindClosestGrapple()
    {
        GameObject[] gos;
        gos = GameObject.FindGameObjectsWithTag("Grapple");
        GameObject closest  = null;
        float      distance = Mathf.Infinity;
        Vector3    position = transform.position;

        foreach (GameObject go in gos)
        {
            Vector3 diff        = go.transform.position - position;
            float   curDistance = diff.sqrMagnitude;
            if (curDistance < distance)
            {
                closest  = go;
                distance = curDistance;
            }
        }

        GameObAndFloat GOAF = new GameObAndFloat();

        GOAF.GO = closest;
        GOAF.FL = distance;

        return(GOAF);
    }
Esempio n. 3
0
 void UpdateRendering(GameObAndFloat goaf)
 {
     LR.SetPosition(0, this.transform.position);
     LinePos0 = this.transform.position;
     if (Input.GetAxis("Grapple") > 0)
     {
         grappling = true;
         LR.SetPosition(1, goaf.GO.transform.position);
         LinePos1 = goaf.GO.transform.position;
     }
     else
     {
         grappling = false;
         LR.SetPosition(1, this.transform.position);
         LinePos1 = this.transform.position;
     }
 }