이 버그의 원인을 이해하지 못했습니다. 누구든지 도와 줄 수 있습니까? IndexOutOfRangeException : 배열 인덱스가 범위를 벗어났습니다
IndexOutOfRangeException: Array index is out of range. (at Assets/Scripts/PlayerCar.js:73) CompareApproximately (det, 1.0F, .005f) UnityEditor.DockArea:OnGUI()
if
문에서
var GearRatio : float [ ];
var CurrentGear :int= 1;
var EngineTorque:float=230.0;
var MaxEngineRPM:float=3000;
var MinEngineRPM:float=1000;
private var EngineRPM: float = 0.0;
function Start() {
rigidbody.centerOfMass += Vector3(0, -1f, 0.25f);
}
function Update() {
EngineRPM =(FrontLeftWhell.rpm + FrontRightWhell.rpm)/2 * GearRatio[CurrentGear];
ShiftGears();
FrontLeftWhell.motorTorque = (EngineTorque /GearRatio[CurrentGear]) * motorInputTouch;
FrontRightWhell.motorTorque = (EngineTorque /GearRatio[CurrentGear]) * motorInputTouch;
}
function ShiftGears(){
if(EngineRPM>=MaxEngineRPM){
var AppropriateGear: int =CurrentGear;
for (var i=0;i<GearRatio.length;i++){
if(FrontLeftWhell.rpm * GearRatio[i]>MaxEngineRPM){
AppropriateGear=i;
break;
}
}
CurrentGear=AppropriateGear;
}
if(EngineRPM <=MinEngineRPM){
AppropriateGear=CurrentGear;
for (var j=0;j<GearRatio.length;j++){
if(FrontLeftWhell.rpm * GearRatio[i]>MinEngineRPM){
AppropriateGear=j;
break;
}
}
CurrentGear=AppropriateGear;
}
잠깐, 유니티트인가요? – Bergi
이 줄'if (FrontLeftWhell.rpm * GearRatio [Min] MinEngineRPM) {'끝 부분에'[i]'대신'[j]'가 있어야합니까? – Paul
예, 많은 방법을 시도했지만 솔루션을 찾을 수 있습니다. ( –