Hi,
I am trying to get this quad to rotate around on the y-axis but I am having a difficult time trying to figure out how to do this. The way I have it at the moment is that if you want to flip the object around you have to turn the flip boolean to true and then in the update method it calls the Flip method but this is not desirable for me. I would like to be able to call a flip method that will flip the object without me having to call a variable and switch it on and off.
Here is the code that I have that I mentioned before.
void Update()
{
if (beenFlipped)
{
timer += Time.deltaTime;
if (timer >= flipTimer)
{
flip = true;
}
}
if (!gsc.gameOver)
{
if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.OSXEditor)
{
Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (Input.GetMouseButtonDown(0))
{
if (collider2D.OverlapPoint(mousePos) && canBegin)
{
if (renderer.material.color != initialColor && beenFlipped)
{
gsc.score++;
flip = true;
}
else
{
gsc.gameOver = true;
}
}
}
}
else
{
for (int i = 0; i < Input.touchCount; i++)
{
Touch t = Input.GetTouch(i);
Vector2 tPos = Camera.main.ScreenToWorldPoint(t.position);
if (t.phase == TouchPhase.Began)
{
if (collider2D.OverlapPoint(tPos) && canBegin)
{
if (renderer.material.color != initialColor && beenFlipped)
{
gsc.score++;
flip = true;
}
else
{
gsc.gameOver = true;
}
}
}
}
}
}
if (flip)
{
Flip(flipColor);
}
//Super Jank Startup
if (gsc.gameStart)
{
canBegin = true;
}
}
public void Flip(Color c)
{
float rot = transform.localEulerAngles.y;
rot += flipSpeed * Time.deltaTime;
if (rot >= 90)
{
if (renderer.material.color == c)
{
renderer.material.color = initialColor;
beenFlipped = false;
}
else
{
renderer.material.color = c;
beenFlipped = true;
}
timer = 0;
flipSpeed = -flipSpeed;
rot = 90;
}
if (rot <= 0)
{
rot = 0;
flipSpeed = -flipSpeed;
flip = false;
}
transform.localEulerAngles = new Vector3(0, rot, 0);
}
Any ideas would be greatly appreciated!
Thanks in advance!