• 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 /
avatar image
0
Question by Lordsoncraft · May 12, 2020 at 02:49 PM · scripting problemscript.moving

What is the best way to make moving obstacles in a 3d game?

I am on ep 10 of Brackeys "How to make a game" series (an obstacle dodging game) and he made different levels by just duplicating his original one and removing obstacles in it. He said that this is for test purposes and that we can make our own levels. So, I decided to make a level where there are moving obstacles. I was having a lot of trouble with making moving obstacles so I need your help. Should I add a moving obstacle prefab and the code in a gamemanager?

All that im trying to say is that i need a script for moving obstacles and where to put that script. Help would be greatly appreciated. Thank you!

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 shadowpuppet · May 12, 2020 at 04:13 PM 0
Share

There are several ways to do this. I like having the obstacles on a navmesh and have them move to random locations upon entering their destination. You could put a randomizing script on the waypoints (below). first, you need a nav$$anonymous$$esh in the scene, then a nav$$anonymous$$eshAgent on the obstacles, then targets for them to navigate towards with the below script and a trigger collider. When they arrive at their target, they get instructions to go to another target. You need this script on the targets. This script is set up to randomize where the obstacles go. It is set up for 4 different targets. you would drag the other targets into the variable slot. OTHER targets! meaning target 1 would have targets 2,3, and 4. Target 2 would have targets 1,3,and 4. I tested it and it works. Tag the obstacle "obstacle". eventually turn off the meshrendereer for the waypoints so you don't see them

 using UnityEngine;
 using System.Collections;
 
 public class test$$anonymous$$ove : $$anonymous$$onoBehaviour {
     public float speed = 3;
     public GameObject[] targets;//possible waypoints for target to go to
     Nav$$anonymous$$eshAgent agent;
     public GameObject nextTarget = null;//actual waypoint the obstacle will go to. Leave this blank
     void Start () {
     
     }
         void OnTriggerEnter(Collider other) {
         if(other.CompareTag ("obstacle")){//your obstacle
             agent= other.gameObject.GetComponent<Nav$$anonymous$$eshAgent>();//gets the navmesh of the obstacle entering the waypoint
             nextTarget = targets [Random.Range (0, targets.Length)];//sets the next waypoint from the list
             agent.SetDestination(nextTarget.transform.position);//tells obstacle to go to tnextTarget
         }
     }
     void OnTriggerExit(Collider other) {
         if(other.CompareTag ("obstacle")){
             nextTarget=null;//resets the target for next obstacle when this obstacle leaves on his way to next waypoint
         }
     }
 }
 

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

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

316 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image 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

Assigning a PreFab to a pre existing variable. 0 Answers

How can i make the right choice of implementation of my shooting fire script ? 1 Answer

money system in c# 0 Answers

Can someone please help me find out what wrong with my code. 1 Answer

Why is the code below not setting the value for the timer? 0 Answers

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