protected virtual void OnPress(bool isPressed) { if (!isPressed) { truckCar.position = raceStart.CharPos.position; truckCar.rotation = raceStart.CharPos.rotation; baggageLabel.BaggageController = truckCar.GetComponentInChildren <BlowController>(); GameObject t = Instantiate(trailer, Vector3.zero, Quaternion.identity) as GameObject; Trailer tr = t.GetComponentInChildren <Trailer>(); //Находим прицепа, if (tr != null) { tr.transform.position = truckCar.position; tr.transform.rotation = truckCar.rotation; truckCar.gameObject.AddComponent <CharacterJoint>(); CharacterJoint characterJoint = truckCar.GetComponent <CharacterJoint>(); characterJoint.connectedBody = tr.GetComponentInChildren <Rigidbody>(); characterJoint.anchor = connectPosition; SoftJointLimit softJointLimit = new SoftJointLimit(); //softJointLimit.limit = 0; //characterJoint.lowTwistLimit = softJointLimit; softJointLimit.limit = 25; characterJoint.highTwistLimit = softJointLimit; //вертикальный сустав softJointLimit.limit = 105; characterJoint.swing1Limit = softJointLimit; //горизонтальный сустав //softJointLimit.limit = 5; //truckCar.GetComponent<CharacterJoint>().swing2Limit = softJointLimit;//left/right truckCar.GetComponent <BlowController>().Frailty = tr.Frailty;//Передаем хрупкость на тягач truckCar.GetComponent <BlowController>().Condition = 100; truckCar.GetComponent <AxisCarController>().Trailer = tr.GetComponentInChildren <Rigidbody>(); truckCar.GetComponent <AxisCarController>().SignalTrailerLeft = tr.SignalLeft; truckCar.GetComponent <AxisCarController>().SignalTrailerRight = tr.SignalRight; truckCar.GetComponentInChildren <BlowController>().TrailerTransform = tr.GetComponentInChildren <Rigidbody>().transform; truckCar.GetComponentInChildren <BlowController>().Box = tr.Box; } Array.Resize(ref enemies, raceStart.enemiesPos.Length); int i = 0; foreach (var e in raceStart.enemiesPos)//Создаем соперников { GameObject enemyTractor = Instantiate(raceStart.enemiesPos[i].EnemyPref, e.EnemyPos.position, e.EnemyPos.rotation) as GameObject; if (enemyTractor != null) { raceStart.mapScroll.Enemies[i] = enemyTractor.transform;//b enemyTractor.GetComponentInChildren <AxisCarController>().SetWay(way); enemies[i] = enemyTractor; GameObject ts = Instantiate(trailer, Vector3.zero, Quaternion.identity) as GameObject; //Destroy(ts.GetComponentInChildren<Skidmarks>().gameObject);//Удалить следы у соперников Trailer trs = ts.GetComponentInChildren <Trailer>(); //Находим прицепа soprnika, if (trs != null) { trs.transform.position = enemyTractor.transform.position; trs.transform.rotation = enemyTractor.transform.rotation; enemyTractor.GetComponent <CharacterJoint>().connectedBody = trs.GetComponentInChildren <Rigidbody>(); enemyTractor.GetComponent <AxisCarController>().Trailer = trs.GetComponentInChildren <Rigidbody>(); enemyTractor.GetComponent <AxisCarController>().SignalTrailerLeft = trs.GetComponent <Trailer>().SignalLeft; enemyTractor.GetComponent <AxisCarController>().SignalTrailerRight = trs.GetComponent <Trailer>().SignalRight; enemyTractor.GetComponentInChildren <RenderContainer>().trailer = trs.GetComponentInChildren <Rigidbody>(); enemyTractor.GetComponentInChildren <BlowController>().TrailerTransform = trs.GetComponentInChildren <Rigidbody>().transform; enemyTractor.GetComponentInChildren <BlowController>().Box = trs.Box; enemyTractor.GetComponent <BlowController>().Frailty = trs.Frailty;//Передаем хрупкость на тягач enemyTractor.GetComponent <BlowController>().Condition = 100; } i += 1; } else { Debug.LogWarning("opp == null"); } } raceFinish.Activ = true; raceStart.ExitStation(); raceStart.ClockOn(); raceFinish.Price = price; raceFinish.buttonAddTrailer = this; buttonThrottle.NitroFuel = 100; // CarZona[] carZones = FindObjectsOfType <CarZona>(); foreach (var carZone in carZones) { carZone.Enemies = enemies; } //Создание бонусов baggageLabel.bonusPosCtrl.CreateBonuses(cargoId); raceStart.MapCamera.SetActive(true); } }