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 BlockFade · Aug 20, 2017 at 04:15 AM · c#editorbugbug reportbeta

Access Violation (Read from location 00000000 caused an access violation)

I have a editor script I call FastSceneCreator which converts scenes into a prefab.
Here is the script:

   public class FastSceneCreator : EditorWindow
     {
         [MenuItem("UNDERUNITY/Convert to Fast Scene %#.", false, 0)]
         public static void Convert()
         {
             // EditorUtility.DisplayDialog("Convert to Fast Scene", "Converting...", "Okay");
             CreateScenePrefab(new GameObject(SceneManager.GetActiveScene().name).transform);
         }
     
         public static void CreateScenePrefab(Transform p)
         {
             p.gameObject.AddComponent<FastScene>();
             GameObject[] gameobjects = GameObject.FindObjectsOfType<GameObject>();
             for (int i = 0; i < gameobjects.Length + 1; i++)
             {
                 if (i < gameobjects.Length)
                 {
                     if (gameobjects[i].transform.parent == null)
                     {
                         gameobjects[i].transform.SetParent(p);
                         continue;
                     }
                 }
                 else
                 {
                     if (AssetDatabase.LoadAssetAtPath<GameObject>(SceneManager.GetActiveScene().path.Replace(".unity", "") + ".prefab") != true)
                     {
                         PrefabUtility.CreatePrefab(SceneManager.GetActiveScene().path.Replace(".unity", "") + ".prefab", p.gameObject);
                     }
                     else
                     {
                         p.GetComponent<FastScene>().Additive = AssetDatabase.LoadAssetAtPath<GameObject>(SceneManager.GetActiveScene().path.Replace(".unity", "") + ".prefab").GetComponent<FastScene>().Additive;
                         PrefabUtility.ReplacePrefab(p.gameObject, AssetDatabase.LoadAssetAtPath<GameObject>(SceneManager.GetActiveScene().path.Replace(".unity", "") + ".prefab"), ReplacePrefabOptions.ReplaceNameBased);
                     }
                     RemoveChildrenAndDelete(p);
                     break;
                 }
             }
         }
     
         public static void RemoveChildrenAndDelete(Transform p)
         {
             EditorUtility.DisplayDialog("Convert to Fast Scene", "Finishing things up...", "...");
             p.DetachChildren();
             if (Resources.Load<FastSceneSettings>("fastsettings").NotifySceneConvert == true)
             {
                 EditorUtility.DisplayDialog("Convert to Fast Scene", "Scene successfuly converted.", "Okay");
             }
         }
     }



When I use the Convert to Fast Scene menu item, the editor hangs without going into "Not Responding", then it crashes.
If you need the error log, tell me!

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 TheSOULDev · Aug 20, 2017 at 04:00 PM 0
Share

You need to properly format your code, no one can decipher this bunch of trash in red text. Access violation means you're touching things you're not supposed to touch - you need to check your memory access.

avatar image BlockFade TheSOULDev · Aug 20, 2017 at 08:33 PM 0
Share

I fixed it now. (The formatting of the code)

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by christoph_r · Aug 20, 2017 at 10:40 PM

I'd say for (int i = 0; i < gameobjects.Length + 1; i++) in line 14 appears to be the issue.

Comment
Add comment · Show 6 · 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 BlockFade · Aug 20, 2017 at 10:55 PM 0
Share

Oh! Thanks! You made me realize that the Array "gameobjects" was filled by the children of the parent object, and when I set the parent of the child to another one, the gameobject in the array was set to null, so the loop was still iterating over the null! That's just a theory though, I'll go test out the new code, and tell you if it worked!

avatar image christoph_r · Aug 21, 2017 at 12:37 AM 0
Share

If you iterate until i is equal to gameobjects.Length (which you are doing according to that line), you will read beyond the array, which causes an access violation.

avatar image adrienPlayerium christoph_r · Aug 21, 2017 at 12:59 AM 2
Share

@christoph_r if you read the for loop he does some weird stuff when reaching the length of the array, he doesn't iterate on gameobjects beyond its length.

avatar image bobisgod234 adrienPlayerium · Aug 21, 2017 at 01:15 AM 2
Share

On top of that, accessing an array with an out of bounds index should only throw a managed IndexOutOfRangeException, certainly not result in an access violation or unity crashing.

Show more comments
Show more comments

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

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

Tons of weird Script compilation errors / editor delays 0 Answers

GetComponent does never return null, possible bug? 1 Answer

Initialising List array for use in a custom Editor 1 Answer

Multiple Cars not working 1 Answer

Unity 5 project freeze after switching to WebGL 0 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