- Home /
How to optimize game performance in this code?
HI, i'm creating a game, in it my ball keep moving inside a box(4 walls), but it is not moving smoothly. I mean may be FPS are low or somehhing else out of my mind. What i want is, below code to be reset to optimize my game performance from the ball perspective. What changes should i make?
public class PlayerScript : MonoBehaviour { public UIscript uiScript;
public GameObject PlayerWall;
public GameObject Player;
public GameObject Buondary;
public bool tapped = false;
public float speed = 0.9f;
public Vector3 velocity;
Vector3 scale;
void Start ()
{
scale = uiScript.txt_currentscore.transform.localScale;
uiScript.GameOn = true;
uiScript.TapToPlay.SetActive (true);
uiScript.ReplayPanel.SetActive (false);
velocity = new Vector3 (Random.Range(-5,5), Random.Range(5,8), 0.0f);
PlayerWall.SetActive (false);
}
void Update ()
{
if (Input.GetMouseButtonDown (0))
{
tapped = true;
uiScript.TapToPlay.SetActive (false);
if(uiScript.GameOn)
{
StartCoroutine (EnableWall ());
}
}
}
IEnumerator EnableWall()
{
uiScript.tapAudio.Play ();
PlayerWall.SetActive (true);
yield return new WaitForSeconds (0.15f);
PlayerWall.SetActive (false);
StopCoroutine (EnableWall ());
}
void FixedUpdate()
{
if (tapped)
{
if(velocity.x != 0)
{
uiScript.selected.rigidbody.MovePosition
(Player.transform.position+velocity * Time.deltaTime *speed);
}
else
{
velocity += new Vector3(1,1,0);
uiScript.selected.rigidbody.MovePosition
(Player.transform.position+velocity * speed *Time.deltaTime);
}
uiScript.selected.gameObject.transform.Rotate(new Vector3(0,0,velocity.y),Time.deltaTime*speed*200);
}
}
void OnCollisionEnter(Collision collision)
{
uiScript.collideAudio.Play ();
foreach (ContactPoint c in collision.contacts)
{
velocity = Vector3.Reflect (velocity, c.normal);
velocity.z = 0;
}
if (collision.collider.tag == "wall")
{
uiScript.score += 1;
uiScript.UpdateScore();
if(speed < 3.8f)
{
speed += 0.2f;
}
}
}
void OnTriggerEnter(Collider other)
{
uiScript.GameOver ();
}
}
Answer by YoungDeveloper · Sep 23, 2015 at 10:49 AM
Move your balls in Update, and not in FixedUpdate
Your answer

Follow this Question
Related Questions
Switching GameObject between static and non-static 2 Answers
Calling gameobject.transform vs. just calling transform directly - Performance negligible? 1 Answer
Merging together all GameObjects of an Array? 1 Answer
Concept question 0 Answers
What is the best way to load an instance of a gameObject when loading a saved game? 0 Answers