Cabbage Logo
Back to Cabbage Site

APK crashed on start up in Oculus

Building with ILCPP unfortunately takes some time, it depends on how powerful your pc is. You can just wait :sweat_smile:
Hopefully it will end!

Yeah I am doing this on my notebook lol…it is still building IL2CPP currently and has been for almost 40mins. Hope it’s done soon! Thank you so much :DDD

Any luck?
After the first successfull build you should be able to patch (never tried it but it is an option to consider investigating)

Also, building on a ssd could speed up things a lot

I left it running for the whole last night and it was still stuck there to build IL2CPP XD I guess my notebook just doesn’t like working too much…
Thanks for recommending the patching method. I will definitely try that when I have my first build in the future.

Whoa that’s bad. What kind of hard disk do you have? Ssd? Are you using a usb dock for the hard disk? Usb could slow things down, better use an internal hard disk.
How much space left on the partition?
You could also try and see if the Unity Editor logged some interesting bits before or while being stuck, have a look here:

Good evening :)))

Thank you so much for the information. Sorry for the late reply as I just finished the school. I checked out my hard disk and they are all SSD. However, my Unity project was saved on my flash drive so I guess that could slow things down? Should I save a copy inside the laptop disk and then run and build the level? I have 25.6 GB left in C drive, 40.8 GB in D drive, and 98.8 GB in E drive. Does it also matter to save the build in an internal drive?

Good morning! :wink:
The project folder is where all the temp staging happens (check the “Library” folder inside your project folder), so where Unity creates the files needed to build.
It involves writing lots of small files, this could be very slow if running on an external flash drive.
You can use the external drive to store the final built apk, but the project should reside in the fastest hard disk you have.
As a rule, consider that usually hard disks work best if they have at least 20% of empty space.

Oh sounds awesome and it worked!!! And it’s millions of times faster :smiley: Took around 1 minute. Check out this little prototype I just recorded inside the headset :slight_smile:

At first, I built it on E drive and it failed at the end because the access to E drive was denied, and I did run Unity Hub as an Administrator. Then I changed the directory to C:\ User to save the build and it worked.

This access issue has been tricky with my PC. I also haven’t been able to run .csd in CsoundQt due to this so I have been writing all the CSDs in Cabbage. I have tried several security settings but it was denied to change the permission.

The next thing I am gonna do is to make this prototype more musical with more sounds. I also need to understand the way to SendScoreEvent in OnTriggerEnter only once without keeping updating it. I am still being a little confused with the programming logic XD Right now I just used SetChannel to turn up the gain of the instrument, but It is kind of limited if I want to turn on an instrument, trigger a sample, or an event.

Thanks a lot for the help and patience! I really appreciate it :smile: Have a wonderful day

1 Like

The prototype is great! Can’t wait to see more :wink:
Have a look here for some advice on how to use colliders:

Haha yes, that was also me in the discussion but asking for my C# partner. Now I need to really apply this myself! I am excited!

1 Like

I pushed a basic collision example to the package that follows that approach, have a look :wink:
(reinstall from package manager + git pasting)

1 Like

Oh, that’s amazing. I am looking at it now! Thanks a million XD

Hmmm…seems like I lost the C# script?

should be fixed now!

That’s great and it worked!

Do you mean that sending a duration of “-1” will only allow the event to be sent once?

The problem I had was that, when my hand stayed on an object, it kept sending the score event every frame and Csound almost exploded, unless I touch the object as fast as one frame. I want to send an event once by touching a sphere without exiting, like the PlayOneShot function, or pressing a keyboard that only triggers a midi note once no matter when I release the keyboard. And when I retouch it, it will send the event once again.

It sounds like your example did send only once. I was using OnTriggerEnter instead of OnCollsionEnter. Is that the reason why it went wrong? It is interesting that you were not using any bool variables.

Sorry that I am kind of confused :frowning:

Oh or is it because when Csound is not initialized, the update function will exit?

For example, I have this waterdrip instrument that will have a random frequency every time I hit play in Cabbage which sends a score event.

Would it be possible to touch an object in Unity and achieve the same result? Every time I touch a sphere, it plays a random waterdrip. I just tried the Collision script but it doesn’t make any sound.

The issue here OnCollisionEnter is that it starts instr 1 for two seconds, otherwise it should be fine! Use a duration of -1 to keep an instr active indefinitely.
A negative instr number is needed to stop the instr. There you are starting again instr 1 OnCollisionExit, with indefinite duration.

i-1 0 -1

This has no effect on the collisions, so they will call Csound SendScoreEvent also if CsoundUnity is not inizialized. Put the check in both the OnCollision functions, before sending the score, to send it only if Csound is initialized.

Also another thing to notice is that if you need more precision in collisions you should use 2 rigidbodies, one on the collision area and another on the object you are moving to collide with it.

I just noticed that you are not sending the score correctly in your OnCollision functions.
Try with:

var score = $"i1 0 -1"; // or $"i-1 0 -1 to stop -> you can also use pfields
csound.SendScoreEvent(score); // instead of "score", 
// in your screenshot Csound is receiving "score", and it's not a valid score command :)

Also, be sure to comment the score in the csd, in your example you have:

i1 0 2

which will start the instr 1 for 2 seconds.


Sorry for the late reply as I just got out of my finals week!

I had the “i1 0 -1” worked once last week but it was playing with the same glitchy issue. I am gonna try $“i1 0 -1” and comment the score out today and let you know soon!

Happy holidays!

1 Like