CPU maxed on simple 31 line script.

heres the script

var movespeed = 0;
    var turn = 0;
    function Update () {
    transform.Translate(Vector3.right * Time.deltaTime * movespeed);
    transform.Rotate(Vector3.up * Time.deltaTime * turn);
      if (Input.GetKey("w"))
      movespeed += 1;
      if (Input.GetKey("m"))
      movespeed -= 0.01;
      if (Input.GetKey("a"))
      turn -= 10;
      if (Input.GetKey("d"))
      turn += 10;
      if (turn <= 0)
      turn += 5;
      if (turn >= 0)
      turn -= 5;

i have a 2.4GHz E2220 and this script gets my CPU to 50% (only using 1 core)
it only started after i added the rotation part
its stupid because i only get 20fps on a 1GB gfx card

It could be because you’re making your script check the turn in both directions and incrementing it twice here:

if (turn <= 0)
      turn += 5;

      if (turn >= 0)
      turn -= 5;

and that could give some weird results. I’m not sure about it, just an idea. And please, don’t bump your question.

I’m also seeing a massive performance hit from transform.rotate and transform.rotatearound… Calling either of these functions six times per physics cycle on iPhone 4 is killing the frame rate, from 60 → ~15fps. Any ideas on cause or workaround?


Just remembered I set my fixed time step to roughly 10 times the frequency of the default while testing something previously which was causing the issue.