• 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 /
avatar image
0
Question by ardy · Apr 03, 2014 at 06:12 AM · 2dmovementcharactercontroller

Limiting Player Movement in 2D game?

Hello y'all!

i'm making a small game to use in a sound design portfolio. the game is 600 x 900 for web and all takes place within 4 game object quads i've placed around the game as boundaries.

I'm using a script i found here: http://pixelnest.io/tutorials/2d-game-unity/player-and-enemies/ for the character controller which works great because it allows the player to float around freely and interact with some circle objects that are also floating around. My issue is though, that with the player controller script as is, the player can fly over and endlessly past the borders!

I really don't know where to start as far as editing code to limit a character's movement so any help on making the character limited to those borders would be of great help.

Here's the script:

 using UnityEngine;
   
 /// <summary>
 /// Player controller and behavior
 /// </summary>
 public class PlayerScript : MonoBehaviour
 {
   /// <summary>
   /// 1 - The speed of the ship
   /// </summary>
   public Vector2 speed = new Vector2(50, 50);
   
   // 2 - Store the movement
   private Vector2 movement;
   
   void Update()
   {
     // 3 - Retrieve axis information
     float inputX = Input.GetAxis("Horizontal");
     float inputY = Input.GetAxis("Vertical");
   
     // 4 - Movement per direction
     movement = new Vector2(
       speed.x * inputX,
       speed.y * inputY);
   
   }
   
   void FixedUpdate()
   {
     // 5 - Move the game object
     rigidbody2D.velocity = movement;
   }
 }
Comment
Add comment · Show 2
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 FlyingHighUp · Apr 03, 2014 at 06:31 AM 0
Share

Do the gameObject quads you have around the edges have 2D box colliders on them?

Setting the velocity directly can also sometimes allow the player to go through colliders (if the velocity is great enough). The solution would be to use rigidbody2D.addForce or something. (This is the extent of my knowledge right now XD)

avatar image ardy · Apr 04, 2014 at 03:10 AM 0
Share

yeah the quads all have box colliders on them!

wouldn't know where to start as far as changing the movement to work with rigidbody2d.addForce though :(

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

22 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

Related Questions

The name 'Joystick' does not denote a valid type ('not found') 2 Answers

2D PlatformerController: Cumulative drift? 1 Answer

Enemy not moving towards Player 0 Answers

Why is my character controller not working? 1 Answer

Character keeps moving in one direction on its own 4 Answers


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