Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
    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*/);
    }
Esempio n. 3
0
    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);
    }
Esempio n. 4
0
    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));
    }
Esempio n. 5
0
    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;
    }