public void Start() { const float weebleHeightOffset = 1.1f; foreach (Transform weebleTransform in GameObject.Find("Agents/Weebles").transform) { if (World.Instance != null) { MovingEntity movingEntity = weebleTransform.GetComponent <MovingEntity>(); if (movingEntity != null) { PathManager pathManager = weebleTransform.GetComponent <PathManager>(); if (pathManager != null) { SearchSpace searchSpace = pathManager.searchSpace; if (searchSpace != null) { weebleTransform.position = movingEntity.PositionAt(searchSpace.GetRandomEntityPosition()); } else { weebleTransform.position = movingEntity.PositionAt(World.Instance.GetRandomEntityPosition(movingEntity)); } } else { weebleTransform.position = movingEntity.PositionAt(World.Instance.GetRandomEntityPosition(movingEntity)); } } else { weebleTransform.position = World.Instance.GroundPositionAt(World.Instance.GetRandomPosition(), weebleHeightOffset); } } else { weebleTransform.position = Vector3.up * weebleHeightOffset; } } }
public void Update() { if (searchSpaceCanChange) { SetSearchSpace(); } if (searchSpace == null || !searchSpace.enabled) { return; } // This is for manual testing via the Inspector if (requestPath) { PathRequestEventPayload request = new PathRequestEventPayload(searchSpace.gameObject, searchSpace.GetRandomEntityPosition()); EventManager.Instance.Enqueue <PathRequestEventPayload>(Events.PathRequest, request); requestPath = false; } }