protected override void OnIterationStart() { var taggedObjects = tagManager.Query <MyLightRandomizerTag>(); foreach (var taggedObject in taggedObjects) { var light = taggedObject.GetComponent <Light>(); if (light) { light.color = lightColorParameter.Sample(); } var tag = taggedObject.GetComponent <MyLightRandomizerTag>(); if (tag) { tag.SetIntensity(lightIntensityParameter.Sample()); } } taggedObjects = tagManager.Query <MyLightSwitcherTag>(); foreach (var taggedObject in taggedObjects) { var tag = taggedObject.GetComponent <MyLightSwitcherTag>(); if (tag) { tag.Act(lightIntensityParameter.Sample()); } } }
private Vector2 RandomPointInRect(Rect rect) { float x = random.Sample() * rect.width + rect.xMin; float y = random.Sample() * rect.height + rect.yMin; return(new Vector2(x, y)); }
protected override void OnIterationStart() { var taggedObjects = tagManager.Query <MyLightRandomizerTag>(); var taggedBackgroundObjects = tagManager.Query <MyLightBackgroundRandomizerTag>(); int k_BaseColor = Shader.PropertyToID("_BaseColor"); float intensity = lightIntensityParameter.Sample(); foreach (var taggedObject in taggedObjects) { var light = taggedObject.GetComponent <Light>(); var direction = taggedObject.GetComponent <Transform>(); taggedObject.transform.rotation = Quaternion.Euler(rotation.Sample()); light.intensity = intensity; light.color = lightColorParameter.Sample(); } float intensityMapped = intensity / 5 + 0.6f; foreach (var taggedBackgroundObject in taggedBackgroundObjects) { var meshRenderer = taggedBackgroundObject.GetComponent <MeshRenderer>(); meshRenderer.material.SetColor(k_BaseColor, new Color(intensityMapped, intensityMapped, intensityMapped, 1)); } }
private float AdjustedValue(float rootValue, float range) { float change = range * random.Sample(); float adjustedVal = rootValue + change; return(adjustedVal); }
protected override void OnIterationStart() { var taggedObjects = tagManager.Query <MyForegroundScaleRandomizerTag>(); foreach (var taggedObject in taggedObjects) { taggedObject.transform.localScale = Vector3.one * scale.Sample(); } }
protected override void OnIterationStart() { var tags = tagManager.Query <ForegroundOccluderScaleRandomizerTag>(); foreach (var tag in tags) { tag.transform.localScale = Vector3.one * scale.Sample(); } }
/// <summary> /// Randomizes the hue offset of tagged objects at the start of each scenario iteration /// </summary> protected override void OnIterationStart() { var tags = tagManager.Query <HueOffsetRandomizerTag>(); foreach (var tag in tags) { var renderer = tag.GetComponent <MeshRenderer>(); renderer.material.SetFloat(k_HueOffsetShaderProperty, hueOffset.Sample()); } }
}; // in range (0, 1) protected override void OnIterationStart() { IEnumerable <YRotationRandomizerTag> tags = tagManager.Query <YRotationRandomizerTag>(); foreach (YRotationRandomizerTag tag in tags) { float yRotation = rotationRange.Sample(); // sets rotation tag.SetYRotation(yRotation); } }
/// <summary> /// Randomizes the rotation of tagged directional lights at the start of each scenario iteration /// </summary> protected override void OnIterationStart() { var lightObjects = tagManager.Query <SunAngleRandomizerTag>(); foreach (var lightObject in lightObjects) { var earthSpin = Quaternion.AngleAxis((hour.Sample() + 12f) / 24f * 360f, Vector3.down); var timeOfYearRads = dayOfTheYear.Sample() / 365f * Mathf.PI * 2f; var earthTilt = Quaternion.Euler(Mathf.Cos(timeOfYearRads) * 23.5f, 0, Mathf.Sin(timeOfYearRads) * 23.5f); var earthLat = Quaternion.AngleAxis(latitude.Sample(), Vector3.right); var lightRotation = earthTilt * earthSpin * earthLat; lightObject.transform.rotation = Quaternion.Euler(90, 0, 0) * Quaternion.Inverse(lightRotation); } }
/// <summary> /// Generates a foreground layer of objects at the start of each scenario iteration /// </summary> protected override void OnIterationStart() { var seed = SamplerState.NextRandomState(); var placementSamples = PoissonDiskSampling.GenerateSamples( placementArea.x, placementArea.y, occluderSeparationDistance.Sample(), seed); var offset = new Vector3(placementArea.x, placementArea.y, 0f) * -0.5f; foreach (var sample in placementSamples) { var instance = m_GameObjectOneWayCache.GetOrInstantiate(prefabs.Sample()); instance.transform.position = new Vector3(sample.x, sample.y, depth) + offset; } placementSamples.Dispose(); }
void RandomizeAnimation(AnimationRandomizerTag tag) { var animator = tag.gameObject.GetComponent <Animator>(); animator.applyRootMotion = tag.applyRootMotion; var overrider = tag.animatorOverrideController; if (overrider != null && tag.animationClips.GetCategoryCount() > 0) { overrider[k_ClipName] = tag.animationClips.Sample(); animator.Play(k_StateName, 0, m_FloatParameter.Sample()); } }
protected override void OnIterationStart() { /*Runs at the start of every iteration*/ IEnumerable <LightRandomizerTag> tags = tagManager.Query <LightRandomizerTag>(); foreach (LightRandomizerTag tag in tags) { var light = tag.gameObject.GetComponent <Light>(); light.intensity = lightIntensityParameter.Sample(); light.color = lightColorParameter.Sample(); Vector3 rotation = new Vector3(rotationX.Sample(), rotationY.Sample(), tag.gameObject.transform.eulerAngles.z); tag.gameObject.transform.rotation = Quaternion.Euler(rotation); } }
protected override void OnIterationStart() { var randomizerTags = tagManager.Query <LightRandomizerTag>(); foreach (var tag in randomizerTags) { var light = tag.GetComponent <Light>(); light.color = lightColorParameter.Sample(); tag.SetIntensity(lightIntensityParameter.Sample()); } var switcherTags = tagManager.Query <LightSwitcherTag>(); foreach (var tag in switcherTags) { tag.Act(auxParameter.Sample()); } }
void PlaceLayerTwoObjects() { if (m_LayerTwoSpawnedObjects == null) { m_LayerTwoSpawnedObjects = new List <GameObject>(); } var seed = scenario.GenerateRandomSeed(); var placementSamples = PoissonDiskSampling.GenerateSamples( layerTwoPlacementArea.x, layerTwoPlacementArea.y, layerTwoSeparationDistance.Sample(), seed); var offset = new Vector3(layerTwoPlacementArea.x, layerTwoPlacementArea.y, 0) * -0.5f; var parent = scenario.transform; foreach (var sample in placementSamples) { var instance = Object.Instantiate(layerTwoPrefabs.Sample(), parent); instance.transform.position = new Vector3(sample.x, sample.y, layerTwoDepth + layerTwoDepthDisplacement.Sample()) + offset; m_LayerTwoSpawnedObjects.Add(instance); } placementSamples.Dispose(); }
/// <summary> /// Generates a foreground layer of objects at the start of each scenario iteration /// </summary> protected override void OnIterationStart() { if (m_SpawnedObjects == null) { m_SpawnedObjects = new List <GameObject>(); } var seed = scenario.GenerateRandomSeed(); var placementSamples = PoissonDiskSampling.GenerateSamples( placementArea.x, placementArea.y, separationDistance.Sample(), seed); var offset = new Vector3(placementArea.x, placementArea.y, 0f) * -0.5f; var parent = scenario.transform; foreach (var sample in placementSamples) { var instance = UnityEngine.Object.Instantiate(prefabs.Sample(), parent); instance.transform.position = new Vector3(sample.x, sample.y, depth) + offset; m_SpawnedObjects.Add(instance); } placementSamples.Dispose(); }
void PlaceObjects() { m_SpawnedCount = 0; var seed = SamplerState.NextRandomState(); var placementSamples = PoissonDiskSampling.GenerateSamples( placementArea.x, placementArea.y, separationDistance.Sample(), seed); var offset = new Vector3(placementArea.x, placementArea.y, 0) * -0.5f; foreach (var sample in placementSamples) { var instance = m_GameObjectOneWayCache.GetOrInstantiate(prefabs.Sample()); instance.transform.position = new Vector3(sample.x, sample.y, depth) + offset; m_SpawnedObjects.Add(instance); if (++m_SpawnedCount == maxObjectCount) { break; } } placementSamples.Dispose(); }