Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
This question was closed Apr 12, 2016 at 08:47 PM by mnmwert for the following reason:

I solved the problem

avatar image
0
Question by mnmwert · Mar 21, 2016 at 02:22 PM · player movementboundary

My Player Is moving all over the place!

I have two scripts: one that moves the player and one that keeps the player within certain coordinates. the problem is that my boundary script is interacting with my mover script making my player go all over the place. Here are my scripts (C#).

   Mover:

using UnityEngine; using System.Collections;

[System.Serializable]

public class mover : MonoBehaviour // Use this for initialization { public float moveSpeed; public float noSpeed;

 void Start()

{

}

// Update is called once per frame void Update() { if (Input.GetKey(KeyCode.RightArrow)) { GetComponent().velocity = new Vector2(+moveSpeed, GetComponent().velocity.y); } if (Input.GetKey(KeyCode.LeftArrow)) { GetComponent().velocity = new Vector2(-moveSpeed, GetComponent().velocity.y); }

      if (Input.GetKeyUp(KeyCode.LeftArrow))
     {
         GetComponent<Rigidbody2D>().velocity = new Vector2(+noSpeed, GetComponent<Rigidbody2D>().velocity.y);
     }
      if (Input.GetKeyUp(KeyCode.RightArrow))
     {
         GetComponent<Rigidbody2D>().velocity = new Vector2(+noSpeed, GetComponent<Rigidbody2D>().velocity.y);
     }
     }   

}

                 and Boundary:

public class boundry : MonoBehaviour {

public int minX; public int maxX; public float minY; public float maxY; public int noSpeed; void Start () {

 }


 void Update ()
 {
     Vector3 p = transform.position;

     if (p.x > minX )
     {
         transform.position = p;
         GetComponent<Rigidbody2D>().velocity = new Vector2(noSpeed, GetComponent<Rigidbody2D>().velocity.x);
     }
     if (p.x > maxX)
     {
         transform.position = p;
         GetComponent<Rigidbody2D>().velocity = new Vector2(noSpeed, GetComponent<Rigidbody2D>().velocity.x);
     }


     if (p.y > minY)
     {
         transform.position = p;
         GetComponent<Rigidbody2D>().velocity = new Vector2(noSpeed, GetComponent<Rigidbody2D>().velocity.y);
     }
     if (p.y > minY)
     {
         transform.position = p;
         GetComponent<Rigidbody2D>().velocity = new Vector2(noSpeed, GetComponent<Rigidbody2D>().velocity.y);
     }
 }

}

I just want my boundary script to stop my player from moving and not make the player go all over the place! I am rather new to programming so if you can can you please make the answer easy to understand?

Thanks!!

Comment
Add comment · Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image mnmwert · Apr 12, 2016 at 08:46 PM 0
Share

I actually figured it out. I modified my mover script some:

public class mover : $$anonymous$$onoBehaviour // Use this for initialization { public float moveSpeed; public float noSpeed; public float jumpHeight; public float jumpSpeed; bool grounded;

 private Rigidbody rigid;

 void Start()
 {
     rigid = GetComponent<Rigidbody>();
 }

 // Update is called once per frame
 void Update()
 {
     if (Input.Get$$anonymous$$ey($$anonymous$$eyCode.RightArrow))
     {
         GetComponent<Rigidbody>().velocity = new Vector2(+moveSpeed, GetComponent<Rigidbody>().velocity.y);
         var direction = 1;
         transform.localScale = new Vector3(direction, 1, 1);
     }
     if (Input.Get$$anonymous$$ey($$anonymous$$eyCode.LeftArrow))
     {
         GetComponent<Rigidbody>().velocity = new Vector2(-moveSpeed, GetComponent<Rigidbody>().velocity.y);
         var direction = -1;
         transform.localScale = new Vector3(direction, 1, 1);
     }

     if (Input.Get$$anonymous$$eyUp($$anonymous$$eyCode.LeftArrow))
     {
         GetComponent<Rigidbody>().velocity = new Vector2(noSpeed, GetComponent<Rigidbody>().velocity.y);
     }
     if (Input.Get$$anonymous$$eyUp($$anonymous$$eyCode.RightArrow))
     {
         GetComponent<Rigidbody>().velocity = new Vector2(+noSpeed, GetComponent<Rigidbody>().velocity.y);
     }

     if (Input.Get$$anonymous$$ey($$anonymous$$eyCode.UpArrow) && grounded == true)
     {
         GetComponent<Rigidbody>().velocity = new Vector2(jumpSpeed, jumpHeight);
         grounded = false;
     }

     if (rigid.velocity.y == 0)
     {
         grounded = true;
     }

     
 }

}

then i placed two cubes with their mesh to serve as a wall. feel free to use the script. (2D in C#)

0 Replies

  • Sort: 

Follow this Question

Answers Answers and Comments

51 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Need help with boundaries 0 Answers

2D player movement problems (moving by itself) 0 Answers

Roll a Ball Tutorial error 1 Answer

Change player gravity by pressing a key? 1 Answer

How do I Update a Collider's Collison through script? 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges