void Start() { button.GetComponent <Button>().onClick.AddListener(() => TaskOnClick()); var flatPos = transform.position; var flatCenter = GetComponent <BoxCollider>().center; var flatSize = transform.localScale; StartFlat = new SpaceForObjectAbove(flatPos.z, flatPos.y, flatSize.z * 2); startArray = new List <SpaceForObjectAbove>() { StartFlat }; //var flatsOnCorpus = new GameObject[] { Corpus.Instance.ownFlats[0], Corpus.Instance.ownFlats[1] }; CorpusThere = new ObjectOnFlat(detail, -0.5f, corpusFlats, randomPos); Weapon = new ObjectOnFlat(weapon_detail, -0.065f, new GameObject[] { }, 20); Weapon2 = new ObjectOnFlat(weapon_detail_2, 0.2f, new GameObject[] { }, 20); Details = new ObjectOnFlat[] { CorpusThere, Weapon, Weapon2 }; kolesa = new Wheels[leftWheels.Length]; for (int i = 0; i < leftWheels.Length; i++) { kolesa[i] = new Wheels(leftWheels[i], rightWheels[i], leftWheels[i].transform.position.y, leftWheels[i].transform.position.x, rightWheels[i].transform.position.x, leftWheels[i].transform.position.z); } }
public float FindPositionOnFlat(SpaceForObjectAbove flat) { var rnd = new System.Random(); int minBorder = (int)flat.CenterCoorZ - (int)flat.widhtZ / 2; int maxBorder = (int)flat.CenterCoorZ + (int)flat.widhtZ / 2; int halfOfObject = (int)System.Math.Floor(widhtZ / 2); double difference = System.Math.Abs(widhtZ / 2 - halfOfObject); var randomIntPos = rnd.Next(minBorder + halfOfObject, maxBorder - halfOfObject + 1); //var difference = System.Math.Abs(minBorder - (flat.CenterCoorZ - flat.widhtZ / 2)); //var randomIntPos = rnd.Next((int)flat.CenterCoorZ - (int)flat.widhtZ / 2, // (int)flat.CenterCoorZ + (int)flat.widhtZ / 2); var randomDob = rnd.NextDouble(); if (randomDob < difference) { randomDob = randomDob + difference; } if (randomIntPos > flat.CenterCoorZ) { return((float)((double)randomIntPos - randomDob / 2)); } else { return((float)((double)randomIntPos + randomDob / 2)); } //if (randomIntPos < flat.CenterCoorZ) // return (float)(randomIntPos /* (randomDob - 1 + difference)*/); //else // return (float)(randomIntPos /* randomDob - difference*/); }
public float FindNewCenter(SpaceForObjectAbove startFlat, ObjectOnFlat[] details) { var summPos = 0.0f; foreach (var detail in details) { summPos += detail.objectOnFlat.transform.position.z; } return(summPos / details.Length); }
public float FindPosOutNewCenter(float newCenter, SpaceForObjectAbove startFlat) { var rnd = new System.Random(); var minLenOutBorder = 0.0f; var border1 = startFlat.CenterCoorZ - startFlat.widhtZ / 2; var border2 = startFlat.CenterCoorZ + startFlat.widhtZ / 2; if (border2 - newCenter > newCenter - border1) { minLenOutBorder = newCenter - (float)border1; } else { minLenOutBorder = (float)border2 - newCenter; } minLenOutBorder = (float)System.Math.Floor((double)minLenOutBorder); return((float)rnd.Next((int)minLenOutBorder)); }
public ObjectOnFlat(GameObject ourObject, float outCenter, GameObject[] flats, float posZ) { objectOnFlat = ourObject; //widhtX = gameObject.GetComponent<BoxCollider>().size.x; widhtZ = ourObject.GetComponent <BoxCollider>().size.z; outOfRealCenter = outCenter; //height = heightOfSpace; //var Space = new SpaceForObjectAbove(gameObject.GetComponent<Transform>().position.z, // gameObject.GetComponent<Transform>().position.y + heightOfSpace, gameObject.GetComponent<BoxCollider>().size.z); //SpacesAbove = new SpaceForObjectAbove[1] { Space }; var vectorFromCenterZ = new float[flats.Length]; for (int i = 0; i < flats.Length; i++) { vectorFromCenterZ[i] = ourObject.transform.position.z - flats[i].transform.position.z; } //var vectorFromCenterY = new float[flats.Length]; //for (int i = 0; i < flats.Length; i++) //{ // vectorFromCenterY[i] = ourObject.transform.position.y - flats[i].transform.position.y; //} var timeArray = new SpaceForObjectAbove[flats.Length]; for (int i = 0; i < flats.Length; i++) { timeArray[i] = new SpaceForObjectAbove( posZ - vectorFromCenterZ[i], flats[i].transform.position.y, flats[i].transform.localScale.z); } SpacesAbove = timeArray; }