コード例 #1
0
    VillagerNode InstantiateVillager(Vector3 position)
    {
        GameObject   newVillager  = Instantiate(villagerPrefab, position, Quaternion.identity);
        VillagerNode villagerNode = newVillager.AddComponent <VillagerNode>();

        villagerNode.SetUp(defaultVillageName);
        return(villagerNode);
    }
コード例 #2
0
    VillagerNode RandomCreateVillager(Vector3 approximatePosition, float radius)
    {
        float        angle            = Random.Range(0f, 359f);
        float        magnitude        = Random.Range(0, radius);
        Vector3      offsetFromCenter = Quaternion.Euler(0, angle, 0) * (Vector3.forward * magnitude);
        Vector3      targetPosition   = approximatePosition + offsetFromCenter;
        VillagerNode villager         = InstantiateVillager(targetPosition);

        PutObjectOnGround(villager.transform);
        return(villager);
    }
コード例 #3
0
 HashSet <VillagerNode> GenerateVillagers()
 {
     Villagers = new HashSet <VillagerNode>();
     // Instantiate the villagers
     for (int i = 0; i < VillageData.HeadCount; i++)
     {
         string       newVillagerName = $"{Name}.{defaultVillagerName}.{i}";
         Vector3      newVillagerPos  = UtilityFunctions.GetRandomVector3(CenterPosition, MaxRadius);
         VillagerNode newVillagerNode = CreateVillager(newVillagerName, newVillagerPos);
         Villagers.Add(newVillagerNode);
     }
     return(Villagers);
 }
コード例 #4
0
    public INode DuplicateNode(bool selfLink = false)
    {
        VillagerNode newNode = new VillagerNode(Name);

        foreach (var link in Linked)
        {
            newNode.AddLink(link);
        }
        if (selfLink)
        {
            newNode.AddLink(this);
        }
        return(newNode);
    }
コード例 #5
0
    public VillagerNode CreateVillager(string villagerName, Vector3 position)
    {
        GameObject newVillager = Instantiate(VillageData.villagerPrefab, position, Quaternion.identity);

        UtilityFunctions.PutObjectOnGround(newVillager.transform);

        VillagerNode villagerNode = newVillager.AddComponent <VillagerNode>();

        villagerNode.SetUp(villagerName);
        villagerNode.transform.parent = transform;

        Villagers.Add(villagerNode);
        AddLink(villagerNode);

        return(villagerNode);
    }