Make object move with Bool C#
my goal is make my spike move Up and Down when the bool is checked. But if i run? no matter what, it turned to True, and start to going down!!! I didnt even checked it. Please help me...!
using UnityEngine; using System.Collections;
public class MovingSpike : MonoBehaviour
{
public GameObject spike;
public float moveSpeed;
public Transform spikeUp;
public Transform spikeDown;
public bool moving;
void Update ()
{
if (moving = false)
{
spike.transform.position = Vector3.MoveTowards (spike.transform.position, spikeUp.transform.position, Time.deltaTime * moveSpeed);
}
if (moving = true)
{
spike.transform.position = Vector3.MoveTowards (spike.transform.position, spikeDown.position, Time.deltaTime * moveSpeed);
}
}
}
@jgodfrey is correct. But even better would be
if (!moving)
{
spike.transform.position = Vector3.$$anonymous$$oveTowards (spike.transform.position, spikeUp.transform.position, Time.deltaTime * moveSpeed);
}
else
{
spike.transform.position = Vector3.$$anonymous$$oveTowards (spike.transform.position, spikeDown.position, Time.deltaTime * moveSpeed);
}
But it is still the same as @jgodfrey's answer.
Answer by jgodfrey · May 07, 2016 at 01:33 AM
At the very least, this...
if (moving = false)
and this...
if (moving = true)
Should be:
if (moving == false)
and...
if (moving == true)
oh my god.... i was trying to other way to solve this for a day.
By the way.. why it is "==" not "="
" = " is an assignment
" == " this is a comparison.
Using "=" assigns a a value to something. For instance:
int a = 1;
assigns the value "1" to the variable "a".
"==" tests for equality between two things. For instance:
if (a == 1)
tests if variable "a" is equal to the value of "1".
Assu$$anonymous$$g your question is answered, please accept the answer.
Your answer
![](https://koobas.hobune.stream/wayback/20220612080318im_/https://answers.unity.com/themes/thub/images/avi.jpg)