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 /
avatar image
0
Question by ohkayem · Dec 23, 2017 at 12:37 PM · ailistswaypoint system

Waypoint Recognition

Dear coders I have coded for waypoints to randomly be instantiated and indexed in a list.

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using System.Linq;
 using UnityEngine.AI;
 
 public class WaypointList : MonoBehaviour {
 
     public GameObject _gameObject;  
     public List<GameObject> _list = new List<GameObject>();
     public float timer;
     float x; 
     float y;
     float z; 
 
     void Start (){
 
 
     }
 
     void Update ()
     {
 
         List<GameObject> _list = new List<GameObject>();
 
         timer += Time.deltaTime;
 
         if (timer > 1.0f) {
             WaypointGenerate();
             timer = 0f;
         }
 
 
         x = Random.Range(-500, 500);
         y = Random.Range (1, 5); 
         z = Random.Range(-500, 500);
     }
 
     void WaypointGenerate ()
     {
         GameObject clone = Instantiate (_gameObject) as GameObject;
         clone.transform.position = new Vector3 (x,y,z);
         _list.Add (_gameObject); 
     
     }
 }
 

My enemy is able to access this list and on a timer randomly pick one of the indexed waypoints.

 System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using System.Linq;
 using UnityEngine.AI;
 
 public class  RandomEnemyWander : MonoBehaviour {
 
     public float timer;
     private NavMeshAgent patrol; 
     public List<GameObject> points; 
     public GameObject wayPointManagerObject; 
     [HideInInspector] WaypointList wplist;  
 
     public int index; 
     GameObject currentPoint; 
     [HideInInspector] GameObject wpClone; 
 
 
     void Start ()
     {
 
         patrol = GetComponent<NavMeshAgent> ();
         wplist = wayPointManagerObject.GetComponent<WaypointList> (); 
         points = wplist._list;  
      
 
 
     }
 
     void Update (){
 
         timer += Time.deltaTime;
 
         if (timer > 10.0f) {
             pickWayPoint (); 
             timer = 0f;
         }
             
     }
 
     public void pickWayPoint (){
 
         index = Random.Range (0, points.Count);
         currentPoint = points [index]; 
         patrol.destination = currentPoint.transform.position; 
         Debug.Log (currentPoint.name); 
 
 
     }
 }
 
 

However, regardless of the indexed waypoint picked, the enemy only ever moves toward the 'first' and original waypoint gameobject and stays there regardless of whatever indexed waypoint is picked.

Would someone be able to give a suggestion as to how I can get the enemy to move toward the waypoint in Index?

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 Larry-Dietz · Dec 23, 2017 at 11:05 PM 0
Share

First thing I would try is to remove the line List _list = new List(); from the Update in your WaypointList script.

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by niocy · Dec 23, 2017 at 04:24 PM

The problem is that you are copying the list of waypoints in the start of randomenemywander, so it will never change. Change your code so that pickwaypoint() copies the current waypoints first and then selects the waypoint

Comment
Add comment · Show 1 · Share
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 ohkayem · Dec 25, 2017 at 02:11 PM 0
Share

@niocy All fixed - typo on my behalf! Thankyou for your help!

avatar image
0

Answer by ohkayem · Dec 23, 2017 at 08:29 PM

@niocy Thanks for your answer. I've tried every variation of your answer but to no luck.

Could it be that each time a new waypoint is instantiated it is instantiated as a clone? I only ask because every time I click on an indexed waypoint, it highlights the original waypoint which is the first one that the enemy walks toward.

I hope this makes sense - any more help would be gratefully appreciated!

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

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.

Follow this Question

Answers Answers and Comments

123 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

Related Questions

Why isn't a Ai Waypoint Spawning??? 0 Answers

Getting script to update list of transforms when destination reached or the transform's game object is inactive 0 Answers

Make player follow a waypoint path but still be able to control player movement 1 Answer

Clones of Prefab not behaving as Prefab 1 Answer

How to add to list if not in list 3 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