Why my RotateAround() function doesn't work?
Regards amigos, So I was trying to make a tornado that makes an effect of pulling enemies towards it, so my idea is to make the enemy rotate around the tornado as it moves along (the tornado is always moving forward), so first off what I do in the enemy script is that when it detects the collision with the tornado it stores the tornado transform in a private transform build in of type Transform and then a boolean becomes true in the update method so it start "chase" the tornado
public class Enemy : MonoBehaviour
{
public float HP;
private Rigidbody rb;
public GameObject DeathPart;
private float Speed;
private bool Chase = false;
private Transform Tornado;
// Start is called before the first frame update
void Start()
{
HP = 12;
rb = GetComponent<Rigidbody>();
StartCoroutine(Life());
Speed = 1;
}
// Update is called once per frame
void Update()
{
if(HP <= 0)
{
Score.ScoreValue += 12;
Instantiate(DeathPart, transform.position, transform.rotation);
Destroy(this.gameObject);
}
if(Chase == true)
{
/* This part doesn't work */
transform.RotateAround(new Vector3(Tornado.position.x, Tornado.position.y + 10f, Tornado.position.z), new Vector3(0, 1, 0), 400 * Time.deltaTime);
}
}
private void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "Fire_Bomb")
{
rb.MovePosition(new Vector3(rb.transform.position.x, rb.transform.position.y + 1.5f, rb.transform.position.z));
HP -= HP;
}
if(other.gameObject.tag == "FireTornado")
{
Tornado = other.transform;
Chase = true;
}
}
IEnumerator Life()
{
yield return new WaitForSeconds(12f);
Destroy(this.gameObject);
}
}
My problem is that when I specify in my RotateAround the point in which it should be rotating and transforming the position at the same time it deoesn't rise the point on the y axis and it just look that the enemies are rotating around the tornado but at ground level. I also tried to make the value 0 of the other components (x and z) and those are afected, i also checked my enemy rigidbody and it doesn't have any contrains or freezes.
Also if you notice my code is sloppy it would be of great help to tell me some advice, Sorry if in some way i confuse you with my english but thank you for reading.
Your answer
Follow this Question
Related Questions
Make GameObject rotate around another around random axis but with fixed distance 0 Answers
Rotate an Object while moving forward using empty gameObject 0 Answers
rotate an object with HTC Vive controller 0 Answers
My rotation is not the same in inspector as it is in the scirpt 0 Answers
How I can i rotate a bullet after spawning relative to the mouseposition? 0 Answers