Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 ganesh-mune · Oct 21, 2013 at 06:50 AM · performancemobileoptimization

Trying to run big scenes on mobile devices.

Hello friends I am trying to create big scenes like whole city for mobile devices it works good for PC and I had taken almost all precautions for making it compatible and efficient. But some time in PC its lags fps is low and in mobile devices it gives big issue. So can you please tell me how expert people avoid these issue and create great games for mobile devices as well in unity. If there is any link suggesting some tips and tricks to make games more efficient and should not give performance issues, please help me.

Comment
Add comment · Show 3
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 ahaykal · Oct 21, 2013 at 08:04 AM 0
Share

Here is a link that might help you: http://sicklebrick.com/?p=411

Look at your draw calls make sure they're not more than ~100(more or less) on the phone. Check your textures, scripts etc... $$anonymous$$any things affect mobile performance.

avatar image mattssonon · Oct 21, 2013 at 08:07 AM 0
Share

This is a very broad question, and it's hard to answer it in one comment. You should take a look at Creating 3D Game Art for the iPhone with Unity, it specifically talks about creating digital assets that will run great on mobile devices.

avatar image ganesh-mune · Oct 21, 2013 at 01:33 PM 0
Share

Thanks :) ahaykal, mattssonon

2 Replies

· Add your reply
  • Sort: 
avatar image
2

Answer by Crystalline · Oct 21, 2013 at 08:55 AM

Join as many game objects as possible.(reduces drawcalls).

Instead of per object material use texture atlases, this way you have less materials which also means less drawcalls.

Using advanced shaders like bumped ,specular can really be an issue, make sure you use them only where you REALLY need them.

Watch your polycount ! Delete faces that cant be seen! Ex : a rock fit into ground, the part that is in the ground is not seen , so it doesent need faces.( modeling)

Its for the best to never go pass 1024 resolution for your textures!

Level of detail is your friend ! Object far away dont need all the details since the player cant really see.

You can use fog and decrease the camera view distance! You can save quite a lot of processing power this way.

Make sure you join as much as possible! But do it in "chunks" not whole areas! Merging too many objects will make frustum culling ineficient!

Hope these tips will help you a bit :).

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 ganesh-mune · Oct 21, 2013 at 01:33 PM 0
Share

thanks a lot dude :) Crystalline

avatar image
2

Answer by meat5000 · Oct 21, 2013 at 09:23 AM

Employ this:

http://docs.unity3d.com/Documentation/ScriptReference/Renderer-isVisible.html

in conjunction with this:

http://docs.unity3d.com/Documentation/ScriptReference/Renderer-enabled.html

Comment
Add comment · Show 4 · 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 ganesh-mune · Oct 23, 2013 at 01:35 PM 0
Share

meat5000: I checked both the links but I am bit confused. Its just like occulusion culling, then why should we go with this and which one is better because in this I need to apply the script for disabling and enabling render on every object then is it good for performance ??

avatar image meat5000 ♦ · Oct 23, 2013 at 02:29 PM 0
Share

From this thread:

The Unity Profiler (if you have Pro) and System.Diagnostics Stopwatch are great tools to get those types of answers.

Using the Stopwatch and iterating 1 million times over toggling GameObject.SetActive() between True and False took about 1335ms.

Doing the same thing and toggling the Renderer.enabled between True and False took about 84.4ms.

Basically, this can be employed as well as Occlusion Culling. It's a very small routine, to check distance from camera and disable object render. It can be performed at large intervals (every 0.5s? 0.1s?) to reduce the demand, which is ideally placed on each object.

The other similar situation is to disable Animations of objects outside of radius&&isVisible. I have seen this technique used in many commercial games.

Crystalline's suggestions, above, are also quite popular and have good performance advantages.

One more thing I can think of is Texture Atlassing which basically involves grouping textures into 'tiles' of one texture and setting offset depending on which one you want to use. This allows you to recycle the same material for more than one object which offers batching benefits as well as reducing the number of materials. (Just noticed Crystalline mentions this, too.)

avatar image ganesh-mune · Oct 23, 2013 at 02:57 PM 0
Share

Thanks a lot meat :) actually m trying to create whole complex in that user can go n interact but for that is it good to instantiate object n destroy them or just place it already and enable disable their renderers.

avatar image meat5000 ♦ · Oct 23, 2013 at 03:09 PM 0
Share

It's always best to avoid Instantiate and Destroy, I hear. Some calls are fine but they are a lot slower than pre-instantiate and enable/disable. A lot less overhead. Alas, it's situation dependent.

I assume you have Pro, which means you could perhaps make use of the Additive/Async loading. Async is loading a scene in the background whereas Additive is background loading into the current scene. You can technically create massive levels which load/unload dynamically. This involves splitting levels up into chunks.

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

17 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

Related Questions

Low Android performance / Render.TransparentGeometry gets 90% 1 Answer

Best way of changing material shader properties performance wise 1 Answer

Collision causing performance to drop 0 Answers

Rendering a plane is dropping 10 fps 0 Answers

This settings are good for performance?? (android game) 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