ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
System.Collections.Generic.List`1[T].get_Item (System.Int32 index) (at <31c0f51ac5a24a22ba784db24f4ba023>:0)
JoystickPlayerExample.Upgrade (System.Int32 selectedBUttonID) (at Assets/Joystick Pack/Examples/JoystickPlayerExample.cs:170)
UpgradePanel.Upgrade (System.Int32 pressedButtonID) (at Assets/Scripts/UpgradePanel.cs:42)
UnityEngine.Events.InvokableCall`1[T1].Invoke (T1 args0) (at <ad50157ee00e45cdb3c8bd67012f8804>:0)
UnityEngine.Events.CachedInvokableCall`1[T].Invoke (System.Object[] args) (at <ad50157ee00e45cdb3c8bd67012f8804>:0)
UnityEngine.Events.UnityEvent.Invoke () (at <ad50157ee00e45cdb3c8bd67012f8804>:0)
UnityEngine.UI.Button.Press () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:70)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:114)
UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:57)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:272)
UnityEngine.EventSystems.EventSystem:Update() (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/EventSystem.cs:501)
문제를 해결하니까 또 다른 문제가 생겼습니다 ..
public void CheckLevelUp()
{
if (selectedUpgrades == null) { selectedUpgrades = new List<UpgradeDate>(); }
if (exp >= TO_Level_UP)
{
selectedUpgrades.AddRange(GetUpgrades(3));
upgradePanel.OpenPanel(selectedUpgrades);
exp -= TO_Level_UP;
level += 1;
}
slider.UpdateExPerienceSlider(exp, TO_Level_UP);
slider.Settext(level, TO_Level_UP);
selectedUpgrades.Clear();
}
public List<UpgradeDate> GetUpgrades(int count)
{
List<UpgradeDate> upgradelist = new List<UpgradeDate>();
upgradelist.Clear();
for (int i = 0; i < count;)
{
int aa = Random.Range(0, upgrades.Count);
if (upgradelist.Contains(upgrades[aa]))
{
aa = Random.Range(0, upgrades.Count);
}
else
{
upgradelist.Add(upgrades[aa]);
i++;
}
}
return upgradelist;
}
public void Upgrade(int selectedBUttonID) // 0을 선택 하면 selectedupgrades[0]이 됨.
{
UpgradeDate upgradeDate = selectedUpgrades[selectedBUttonID];
if(acquiredUpgrades == null) { acquiredUpgrades = new List<UpgradeDate>(); }
acquiredUpgrades.Add(upgradeDate);
}
}
배열 들어간 joystick코드입니당
글삭튀 확률 99.8%
ㅋㅋㅋㅋㅋㅋ글삭튀하는 쫌생이 수준답게 질문도 병신같은거 들고오네
욕하지마세요
질문하는 수준을 보면 그사람 실력을 알수 있음, 너는 그... 아니다..
글삭튀 안할게요.. ㅠㅠ
ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
오버플로우났다고
무슨말이에요??
배열에 4개있는데 5번째 접근할때뜸
포문돌리는거면 디버그로그라도 찍어봐라
ㄱ찮으면 포문말고 포이치쓰던가
수정했습니다!
oystickPlayerExample.cs:170 에서 int 값 넣어줬는데 그 값이 배열의 전체 총량보다 크거나 0보다 작을수 없다고 나오잔아 백프로 배열 길이 -1 없이 그대로 처넣었겠지
0,1,2 넣어줬어요
글자를 읽어 글자를 index out of range
ㄹㅇㅋㅋㅋㅋ
오 성공했다.
빨리 지워
지우면 또 욕할거자낭 - dc App