Ejemplo n.º 1
0
    public void singleSpawn(int a)
    {
        int prefabNum = UnityEngine.Random.Range(0, peoplePrefabs.Length);
        var people    = gameObject;

        if (peoplePrefabs[prefabNum] == null)
        {
            Debug.Log("peoplePrefabs[prefabNum]");
        }
        if (points[0, a] == null)
        {
            Debug.Log("points[0, a]");
        }
        people = (GameObject)Instantiate(peoplePrefabs[prefabNum], points[0, a] /*+ new Vector3(randomPos, 0, randomPos)*/, Quaternion.identity);
        changeLayerTarget(people.transform);
        people.gameObject.transform.Rotate(new Vector3(0, -90, 0));
        var _movePath = people.AddComponent <MovePath4>();

        people.transform.parent = par.transform;
        _movePath.walkPath      = gameObject;

        string animName;

        /*if (isWalk)
         *  animName = "walk";
         * else
         *  animName = "run";*/
        bool forward_ = false;
        bool gender   = NPCAttributeController.GenerateGender();

        _movePath.MyStart(0, a, /*animName*/ "listen", loopPath, forward_, gender);
    }
Ejemplo n.º 2
0
 private void generateAttribute(bool _gender)
 {
     gender          = _gender;
     age             = NPCAttributeController.GenerateAge();
     similarity      = NPCAttributeController.GenerateSimilarity();
     sensitiveFactor = NPCAttributeController.GenerateSensitive();
     maxSpeed        = NPCAttributeController.floatGenerateSpeed(gender, age);
     moveSpeed       = maxSpeed * similarity;
 }
Ejemplo n.º 3
0
    public void SpawnPeople()
    {
        if (par == null)
        {
            par = new GameObject();
            par.transform.parent = gameObject.transform;
            par.name             = "people";
        }

        int s;

        s = pointLength[0] - 2;

        for (int b = 0; b < numberOfWays; b++)
        {
            for (int a = 1; a <= s; a++)
            {
                if (a != 58 && a != 35 && a != 34 &&
                    a != 32 && a != 33 && a != 26 &&
                    a != 27 && a != 62)
                {
                    bool forward_ = false;
                    if (direction.ToString() == "Forward")
                    {
                        forward_ = true;
                    }

                    else if (direction.ToString() == "Backward")
                    {
                        forward_ = false;
                    }

                    else if (direction.ToString() == "HugLeft")
                    {
                        if ((b + 2) % 2 == 0)
                        {
                            forward_ = true;
                        }
                        else
                        {
                            forward_ = false;
                        }
                    }

                    else if (direction.ToString() == "HugRight")
                    {
                        if ((b + 2) % 2 == 0)
                        {
                            forward_ = false;
                        }
                        else
                        {
                            forward_ = true;
                        }
                    }

                    else if (direction.ToString() == "WeaveLeft")
                    {
                        if (b == 1 || b == 2 || (b - 1) % 4 == 0 || (b - 2) % 4 == 0)
                        {
                            forward_ = false;
                        }
                        else
                        {
                            forward_ = true;
                        }
                    }

                    else if (direction.ToString() == "WeaveRight")
                    {
                        if (b == 1 || b == 2 || (b - 1) % 4 == 0 || (b - 2) % 4 == 0)
                        {
                            forward_ = true;
                        }
                        else
                        {
                            forward_ = false;
                        }
                    }

                    Vector3 myVector = Vector3.zero;

                    myVector = points[b, a + 1] - points[b, a];

                    float myVectorMagnitude = myVector.magnitude;
                    int   peopleCount       = (int)((density / 5.0f) * myVectorMagnitude);

                    if (peopleCount < 1)
                    {
                        peopleCount = 1;
                    }

                    //float step = myVectorMagnitude / peopleCount;
                    //float totalStep = 0;

                    for (int i = 0; i < peopleCount; i++)
                    {
                        float randomPos = 0;
                        randomPos = Random.Range(-4f, 4f);
                        var  people = gameObject;
                        bool gender = NPCAttributeController.GenerateGender();
                        if (gender == true)
                        {
                            int prefabNum = UnityEngine.Random.Range(0, 7);
                            if (forward_)
                            {
                                people = Instantiate(peoplePrefabs[prefabNum], points[b, a] /*+ new Vector3(randomPos, 0, randomPos)*/, Quaternion.identity) as GameObject;
                            }
                            else
                            {
                                people = Instantiate(peoplePrefabs[prefabNum], points[b, a] /*+ new Vector3(randomPos, 0, randomPos)*/, Quaternion.identity) as GameObject;
                            }
                        }
                        else
                        {
                            int prefabNum = UnityEngine.Random.Range(7, peoplePrefabs.Length);
                            if (forward_)
                            {
                                people = Instantiate(peoplePrefabs[prefabNum], points[b, a] /*+ new Vector3(randomPos, 0, randomPos)*/, Quaternion.identity) as GameObject;
                            }
                            else
                            {
                                people = Instantiate(peoplePrefabs[prefabNum], points[b, a] /*+ new Vector3(randomPos, 0, randomPos)*/, Quaternion.identity) as GameObject;
                            }
                        }
                        people.transform.parent = par.transform;
                        people.gameObject.transform.Rotate(new Vector3(0, -180, 0));
                        changeLayerTarget(people.transform);
                        var _movePath = people.AddComponent <MovePath4>();
                        _movePath.walkPath = gameObject;
                        _movePath.MyStart(b, a, /*animName*/ "listen", loopPath, forward_, gender);
                    }
                }
            }
        }
    }
Ejemplo n.º 4
0
    public void SpawnPeople()
    {
        if (par == null)
        {
            par = new GameObject();
            par.transform.parent = gameObject.transform;
            par.name             = "people";
        }

        int s;

        s = pointLength[0] - 2;

        for (int b = 0; b < numberOfWays; b++)
        {
            float mSpeed = moveSpeed + UnityEngine.Random.Range(moveSpeed * -0.15f, moveSpeed * 0.15f);

            for (int a = 1; a <= s; a++)
            {
                if (a == 1 || a == 2 || a == 65 ||
                    a == 33 || a == 34 || a == 66 ||
                    a == 67 || a == 68 || a == 64 ||
                    a == 69 || a == 70 || a == 71 ||
                    a == 72 || a == 73 || a == 74 ||
                    a == 75 || a == 5 || a == 76 ||
                    a == 77 || a == 78 || a == 6 ||
                    a == 79 || a == 80 || a == 81 ||
                    a == 82 || a == 7 || a == 83 ||
                    a == 86 || a == 85 || a == 88 ||
                    a == 8 || a == 89 || a == 90 ||
                    a == 91 || a == 92 || a == 9 ||
                    a == 94 || a == 95 || a == 96 ||
                    a == 93 || a == 10 || a == 100 ||
                    a == 97 || a == 99 || a == 98 ||
                    a == 11 || a == 12 || a == 13 ||
                    a == 15 || a == 16 || a == 17 ||
                    a == 27 || a == 26 || a == 28 ||
                    a == 29 || a == 40 || a == 39 ||
                    a == 4 || a == 38 || a == 63 ||
                    a == 37 || a == 35 || a == 36 ||
                    a == 32 || a == 3
                    )
                {
                    bool forward_ = false;
                    if (direction.ToString() == "Forward")
                    {
                        forward_ = true;
                    }

                    else if (direction.ToString() == "Backward")
                    {
                        forward_ = false;
                    }

                    else if (direction.ToString() == "HugLeft")
                    {
                        if ((b + 2) % 2 == 0)
                        {
                            forward_ = true;
                        }
                        else
                        {
                            forward_ = false;
                        }
                    }

                    else if (direction.ToString() == "HugRight")
                    {
                        if ((b + 2) % 2 == 0)
                        {
                            forward_ = false;
                        }
                        else
                        {
                            forward_ = true;
                        }
                    }

                    else if (direction.ToString() == "WeaveLeft")
                    {
                        if (b == 1 || b == 2 || (b - 1) % 4 == 0 || (b - 2) % 4 == 0)
                        {
                            forward_ = false;
                        }
                        else
                        {
                            forward_ = true;
                        }
                    }

                    else if (direction.ToString() == "WeaveRight")
                    {
                        if (b == 1 || b == 2 || (b - 1) % 4 == 0 || (b - 2) % 4 == 0)
                        {
                            forward_ = true;
                        }
                        else
                        {
                            forward_ = false;
                        }
                    }

                    Vector3 myVector = Vector3.zero;

                    myVector = points[b, a + 1] - points[b, a];

                    float myVectorMagnitude = myVector.magnitude;
                    int   peopleCount       = (int)((density / 5.0f) * myVectorMagnitude);

                    if (peopleCount < 1)
                    {
                        peopleCount = 1;
                    }

                    //float step = myVectorMagnitude / peopleCount;
                    //float totalStep = 0;

                    for (int i = 0; i < peopleCount; i++)
                    {
                        float randomPos = 0;
                        randomPos = Random.Range(-4, 4);
                        var  people = gameObject;
                        bool gender = NPCAttributeController.GenerateGender();
                        if (gender == true)
                        {
                            int prefabNum = UnityEngine.Random.Range(0, 7);
                            if (forward_)
                            {
                                people = Instantiate(peoplePrefabs[prefabNum], points[b, a] /*+ new Vector3(randomPos, 0, randomPos)*/, Quaternion.identity) as GameObject;
                            }
                            else
                            {
                                people = Instantiate(peoplePrefabs[prefabNum], points[b, a] /*+ new Vector3(randomPos, 0, randomPos)*/, Quaternion.identity) as GameObject;
                            }
                        }
                        else
                        {
                            int prefabNum = UnityEngine.Random.Range(7, peoplePrefabs.Length);
                            if (forward_)
                            {
                                people = Instantiate(peoplePrefabs[prefabNum], points[b, a] /*+ new Vector3(randomPos, 0, randomPos)*/, Quaternion.identity) as GameObject;
                            }
                            else
                            {
                                people = Instantiate(peoplePrefabs[prefabNum], points[b, a] /*+ new Vector3(randomPos, 0, randomPos)*/, Quaternion.identity) as GameObject;
                            }
                        }
                        people.transform.parent = par.transform;
                        people.gameObject.transform.Rotate(new Vector3(0, 90, 0));
                        changeLayerTarget(people.transform);
                        var _movePath = people.AddComponent <MovePath1>();
                        _movePath.walkPath = gameObject;

                        _movePath.MyStart(b, a, /*animName*/ "listen", loopPath, forward_, gender);
                    }
                }
            }
        }
    }