• 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 22, 2019 at 02:04 PM by Nosmo for the following reason:

Other

avatar image
0
Question by Nosmo · Apr 16, 2019 at 06:21 PM · movementrigidbodyboxcolliderclampboundary

Im having trouble clamping enemies to the game area, can anyone help?

My game has enemies coming down a platform with barriers on both sides. But they use evasive maneuvers and sometimes go beyond the barrier. I have added a box colliders on the barriers and on the enemy which are set to trigger to kill enemies - a 2nd box collider can be added but due to the rigidbody attached this causes them to go spinning off when they come in contact with each other or the barriers.


Here is the youtube video I've made so you get an idea what the game is like: https://www.youtube.com/playlist?list=PLyWpXjiYnxF3kLBe89_FbQ4rgmxHDGAVV


all tutorials so far have been for 2D games has anyone got suggestions how i can clamp them to the platform area or make the enemies move without a rigidbody attached?


  • this is the evasive maneuver script

public class EvasiveManeuver : MonoBehaviour {

 public float dodge;
 public float smoothing;
 public Vector2 startWait;
 public Vector2 maneuverTime;
 public Vector2 maneuverWait;
 public Boundary boundary;

 private float targetManeuver;
 private Rigidbody rb;
 private float currentSpeed;

 void Start()
 {
     rb = GetComponent<Rigidbody>();
     currentSpeed = rb.velocity.z;
     StartCoroutine(Evade());
 }

 IEnumerator Evade()
 {
     yield return new WaitForSeconds(Random.Range(startWait.x, startWait.y));

     while (true)
     {
         targetManeuver = Random.Range(1, dodge) * -Mathf.Sign(transform.position.x); //does the opposite, done to keep the enemy inside the screen and not hug the edge  
         yield return new WaitForSeconds(Random.Range(maneuverTime.x, maneuverTime.y));
         targetManeuver = 0; //set it back to zero
         yield return new WaitForSeconds(Random.Range(maneuverTime.x, maneuverTime.y)); //startWait for a period of time
     }
 }

 void FixedUpdate()
 {
     float newManeuver = Mathf.MoveTowards(rb.velocity.x, targetManeuver, Time.deltaTime * smoothing);
     rb.velocity = new Vector3(newManeuver, 0.0f, currentSpeed);
      rb.position = new Vector3
      (
          Mathf.Clamp(rb.position.x, boundary.xMin, boundary.xMax),
          0.0f,
          Mathf.Clamp(rb.position.z, boundary.zMin, boundary.zMax)
      );
  }

}

  • This is the enemy movement script

public class Mover : MonoBehaviour

{

 public float speed;

 public Rigidbody rb;

 void Start()
 {
     rb.velocity = transform.forward * speed;
 }

}

Comment
Add comment
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

0 Replies

  • Sort: 

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

247 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 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 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 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 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

Space Shooter Tutorial, Player Movement and Boundaries 0 Answers

Player stuck when jumping into a wall 0 Answers

i'm trying to make an fps with rigidbody but the player isn't going according to it's direction 0 Answers

Error CS0201 when trying to change RigidbodyConstraints 1 Answer

How can I move a RigidBody object smoothly between 3 possible positions? 0 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges