- Home /
Question by
DissonanceMask · Aug 30, 2019 at 06:34 PM ·
arrayvector3forloop
Trying to make a for loop with an array of Vector3
Greetings! Im trying to make a movement array, not positioning (just trying out new things), where if I input any of the horizontal axis, it will make index = 1, and verticals will input index = 2. [!!! I stopped at Move()!!!] If there are any suggestions with my vector3 array placement, please do let me know! My code is as follows:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Tank : MonoBehaviour
{
[SerializeField] float moveSpeed;
[SerializeField] float padding = 1f;
[SerializeField] GameObject bulletPrefab;
[SerializeField] GameObject bulletSpawn;
//Player Number
[SerializeField] bool isPlayer1;
[SerializeField] bool isPlayer2;
[SerializeField] bool isPlayer3;
[SerializeField] bool isPlayer4;
//Direction Facing
[SerializeField] bool isFacingUp;
[SerializeField] bool isFacingDown;
[SerializeField] bool isFacingLeft;
[SerializeField] bool isFacingRight;
private Vector3[] movement;
// Start is called before the first frame update
void Start()
{
if (isPlayer2 == true)
{
isFacingUp = true;
}
else if (isPlayer3 == true)
{
isFacingUp = true;
}
else if (isPlayer4 == true)
{
isFacingUp = true;
}
else
{
isFacingUp = true;
}
}
// Update is called once per frame
void Update()
{
Fire();
Move();
SpriteRotate();
}
private void Fire()
{
if(Input.GetButtonDown("Fire1"))
{
GameObject bullet = Instantiate(bulletPrefab, bulletSpawn.transform.position, transform.rotation) as GameObject;
}
}
private void Move()
{
movement = new[] { new Vector3(0f, 0f, 0f), new Vector3(Input.GetAxisRaw("Horizontal"), 0f, 0f), new Vector3(0f, Input.GetAxisRaw("Vertical"), 0f)};
for (int i = 0; i < movement.Length; i++)
{
if(Input.GetButtonDown("Horizontal"))
{
i = 1;
}
}
transform.position += movement[i] * moveSpeed * Time.deltaTime;
}
private void SpriteRotate()
{
if (Input.GetKey(KeyCode.W))
{
transform.eulerAngles = new Vector3(0, 0, 0);
isFacingUp = true;
isFacingDown = false;
isFacingLeft = false;
isFacingRight = false;
}
if (Input.GetKey(KeyCode.S))
{
transform.eulerAngles = new Vector3(0, 0, 180);
isFacingUp = false;
isFacingDown = true;
isFacingLeft = false;
isFacingRight = false;
}
if (Input.GetKey(KeyCode.A))
{
transform.eulerAngles = new Vector3(0, 0, 90);
isFacingUp = false;
isFacingDown = false;
isFacingLeft = true;
isFacingRight = false;
}
if (Input.GetKey(KeyCode.D))
{
transform.eulerAngles = new Vector3(0, 0, -90);
isFacingUp = false;
isFacingDown = false;
isFacingLeft = false;
isFacingRight = true;
}
}
}
Comment