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 Poi7ioN · Apr 19, 2019 at 04:36 PM · listsscene-changeargumentoutofrangeexception

Need some help with list and reusing the list in next scene

 **Script 1 GameStatus.cs**
 
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using TMPro;
 
 public class GameStatus : MonoBehaviour
 {
     [SerializeField] public List<GameObject> LifeDisplay;
     [SerializeField] public List<GameObject> generatePower; // life power prefab goes here 
 
     LoseCollider LoseCollider;
     public GameObject LifePrefab;
     static public int countlives;
     public float PowerTimer;
 
     private void Awake()
     {
         int CountNoObjects = FindObjectsOfType<GameStatus>().Length;
         if (CountNoObjects > 1)
         {
             DestroyAndRestItself();
         }
         else
         {
             DontDestroyOnLoad(gameObject);
         }
     }
     public void DestroyAndRestItself()
     {
         Destroy(gameObject);
     }
     private void Start()
     {
         scoreText.text = currentScore.ToString();
         SceneLoader = FindObjectOfType<SceneLoader>();
         LoseCollider = FindObjectOfType<LoseCollider>();
         gameLevel = FindObjectOfType<GameLevel>();
     }
 
     // Update is called once per frame
     void Update()
     {
         Time.timeScale = gamespeed;
         gameLevel.DisplayLevel();
         countlives = LifeDisplay.Count;
         PowerTimer += Time.deltaTime;
         if (PowerTimer > 20f)
         {
             GeneratePowerup();
         }
         if(PowerTimer > 12f)
         {
             PowerDestroy();
         }
     }
     public void GeneratePowerup()
     {
         GameObject pow = Instantiate(generatePower[UnityEngine.Random.Range(0, generatePower.Count)], 
             new Vector3(Random.Range(1f,15f),Random.Range(8f,11f),0f),transform.rotation);
         PowerTimer = 0;
     }
     public void PowerDestroy()
     {
         Destroy(GameObject.FindGameObjectWithTag("SlowPower"));
         Destroy(GameObject.FindGameObjectWithTag("FastPower"));
         Destroy(GameObject.FindGameObjectWithTag("ShootingPower"));
         Destroy(GameObject.FindGameObjectWithTag("Life"));
     }
     public void GetLifePrefab()
     {
         LifeDisplay.Add(LifePrefab);
         DontDestroyOnLoad(Instantiate(LifePrefab, new Vector3(xValueoflife, yValueoflife, 0f), Quaternion.identity));   // here when object is of tag lifeprefab it gets added to list and life object is instantiated at the top right
         xValueoflife = xValueoflife + 0.42f;
     }
 }
   

     
     ** Here in script second LoseCollider.cs**
     
      private void Update()
         {
             lifePower = GameStatus.countlives; // counting list size
         }
     
         public void OnTriggerEnter2D(Collider2D collision)
         {
             
             if (collision.gameObject.tag.Equals("NormalBall") == true)
             {
                 if(lifePower == 0)
                 {
                     collision.GetComponent<Collider2D>().isTrigger = true;
                     gameStatus = FindObjectOfType<GameStatus>();
                     gameStatus.ChangePosition();
                     DestroyLevel();
                 }
                 else
                 {
                     Instantiate(ball, new Vector3(paddle.transform.position.x, 0.7483f, 0), Quaternion.identity);
                     for (var i= lifePower-1; i < lifePower; i++)
                     {
                         gameStatus.LifeDisplay.RemoveAt(i); // this is where the problem occurs lifepower count gets updated but the object from list wont remove.
                     }
                     lifePower--;
                 }
             }
             else
             {
                 collision.GetComponent<Collider2D>().isTrigger = false;
             }
         }

ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index ** This error pops up in scene 2 , whereas in first scene it works fine. Please can some one take a look at it much appreciated. :)

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

· 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.

Follow this Question

Answers Answers and Comments

105 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

Related Questions

Assign role randomly from array 2 Answers

Unable to completely clear a list 2 Answers

Trouble Using a Static List 0 Answers

Lists are empty when they aren't supposed to be 2 Answers

Argument out of Range Exception Error - Parameter Name: Index 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