I’m using array to insert 4 elements that left hand of my character will move between theme one by one. The problem is that it tells me “IndexOutOfRangeException: Index was outside the bounds of the array.” !!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Iks: MonoBehaviour
{
public clickme _active;
public bool reload;
public int currt;
public float dis;
public Transform[] reloadPositions; // 4 elements
void Start()
{
foreach (Transform trans in gameObject.GetComponentsInChildren<Transform>())
{
if (trans.name == "set")
{
reloadPositions[3] = trans.gameObject.transform;
}
if (trans.name == "set (1)")
{
reloadPositions[0] = trans.gameObject.transform;
}
if (trans.name == "set (2)")
{
reloadPositions[1] = trans.gameObject.transform;
}
if (trans.name == "set (3)")
{
reloadPositions[2] = trans.gameObject.transform;
}
}
} // end start
void Update()
{
currt = reloadPositions.Length;
if (reload == true && _active.grenade == false)
{
dis = Vector3.Distance(_active.leftHandObj.transform.localPosition, reloadPositions[currt].transform.localPosition); // error in this line
if (dis < 0.1)
{
currt = currt + 1;
if (currt >= reloadPositions.Length && dis < 1)
{
currt = reloadPositions.Length - 1;
reload = false;
currt = 0;
}
}
_active.leftHandObj.transform.localPosition = Vector3.MoveTowards(_active.leftHandObj.transform.localPosition, reloadPositions[currt].localPosition, Time.deltaTime / 1.0f);
}
else
{
// _active.leftHandObj.transform.localPosition = Vector3.MoveTowards(_active.leftHandObj.transform.localPosition, reloadPositions[reloadPositions.Length - 1].localPosition, Time.deltaTime / 1.0f);
}
} // end update
}