public void Init(FishSpawner fishSpawner, FishSpawn fishSpawn, Transform parent, Vector2 pos) { spawner = fishSpawner; spawn = fishSpawn; transform.SetParent(parent); transform.position = pos; }
//Creates FishSpawners from Fish data and stores them in a list (_fishSpawners). private void InstanstiateFishSpawners() { for (int index = 0; index < _fishToSpawn.Length; index++) { FishSpawner fishSpawner = new FishSpawner(_fishToSpawn[index]._spawnFrequency, index, _fishToSpawn[index]._fishSpawnAmount, this); _fishSpawners.Add(fishSpawner); } }
public void Initialize(FishSpawner _spawner) { spawner = _spawner; velocity = transform.forward * Random.Range(minSpeed, maxSpeed); cohereDir = Vector3.zero; alignDir = Vector3.zero; separateDir = Vector3.zero; }
void Draw() { FishSpawner spawner = (FishSpawner)target; for (int i = 0; i < spawner.spawnPositions.Count; i++) { Handles.DrawSphere(i, spawner.spawnPositions[i].position, Quaternion.identity, 5f); } }
void Start() { fishSpawner = GetComponent <FishSpawner> (); if (fishUpdater) { InvokeRepeating("GetXML", 1, 600); } else { GetXML(); } }
// Start is called before the first frame update void Start() { fishSpawner = GameObject.FindObjectOfType <FishSpawner>(); for (int i = 0; i < 4; i++) { if (i > fishSpawner.fishFreqs.Count) { break; } attachPoints[i].GetComponent <FishInputAttach>().fishType = fishSpawner.fishFreqs[i].fishType; } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); FishSpawner spawner = (FishSpawner)target; if (GUILayout.Button("Add fish")) { Undo.RecordObject(spawner, "Add fish"); spawner.AddFish(); } if (GUILayout.Button("Add position")) { Undo.RecordObject(spawner, "Add position"); spawner.AddPosition(); //EditorUtility.SetDirty(tar); } }
void Start() { fs = GameObject.FindObjectOfType <FishSpawner>(); }
void Start() { fishspawner = gameObject.GetComponent <FishSpawner>(); }
// Update is called once per frame void FixedUpdate() { Vector3 separation = Vector3.zero; Vector3 cohesion = Vector3.zero; Vector3 alignment = Vector3.zero; Vector3 walls = Vector3.zero; foreach (FishSchooling fish in FishSpawner.fish) { GameObject f = fish.gameObject; Vector3 distanceVector = transform.position - f.transform.position; float distanceMagnitude = distanceVector.sqrMagnitude; Vector3 betweenVector = distanceVector.normalized; char ally = FishSpawner.getFishTypeDiplomacy(gameObject, f); if (distanceMagnitude < separationDistance) { separation += betweenVector * distanceMagnitude / separationDistance; } if (distanceMagnitude > cohesionMinDistance && distanceMagnitude < cohesionMaxDistance && (ally == 'f')) { cohesion += betweenVector * -1 * distanceMagnitude / (cohesionMaxDistance - cohesionMinDistance); } if (distanceMagnitude < alignmentDistance && (ally == 'n' || ally == 'f')) { alignment += f.transform.forward / separationDistance; } } if (transform.position.x > wallLocations - wallSeparationDistance) { walls += new Vector3(-1.0f / (wallLocations - transform.position.x), 0.0f, 0.0f); } else if (transform.position.x < -1.0f * wallLocations + wallSeparationDistance) { walls += new Vector3(-1.0f / (-1.0f * wallLocations + transform.position.x), 0.0f, 0.0f); } if (transform.position.y > wallLocations - wallSeparationDistance) { walls += new Vector3(0.0f, -1.0f / (wallLocations - transform.position.y), 0.0f); } else if (transform.position.y < -1.0f * wallLocations + wallSeparationDistance) { walls += new Vector3(0.0f, -1.0f / (-1.0f * wallLocations + transform.position.y), 0.0f); } if (transform.position.z > wallLocations - wallSeparationDistance) { walls += new Vector3(0.0f, 0.0f, -1.0f / (wallLocations - transform.position.z)); } else if (transform.position.z < -1.0f * wallLocations + wallSeparationDistance) { walls += new Vector3(0.0f, 0.0f, -1.0f / (-1.0f * wallLocations + transform.position.z)); } separation = separation.normalized * separationDensity; cohesion = cohesion.normalized * cohesionDensity; alignment = alignment.normalized * alignmentDensity; walls = walls.normalized * wallSeparationDensity; Vector3 schoolingVector = (transform.forward) + (separation + cohesion + alignment + walls) * Time.fixedDeltaTime * turnSpeed; transform.forward = (schoolingVector).normalized; rigidbody.velocity = transform.forward * speed; }