Here are the examples of the csharp api UnityEngine.RuleTile.ApplyRandomTransform(UnityEngine.RuleTile.TilingRule.Transform, UnityEngine.Matrix4x4, float, UnityEngine.Vector3Int) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
1 Examples
19
View Source File : RuleTile.cs
License : MIT License
Project Creator : Aroueterra
License : MIT License
Project Creator : Aroueterra
public override void GetTileData(Vector3Int position, ITilemap tileMap, ref TileData tileData)
{
tileData.sprite = m_DefaultSprite;
tileData.colliderType = m_DefaultColliderType;
tileData.flags = TileFlags.LockTransform;
tileData.transform = Matrix4x4.idenreplacedy;
foreach (TilingRule rule in m_TilingRules)
{
Matrix4x4 transform = Matrix4x4.idenreplacedy;
if (RuleMatches(rule, position, tileMap, ref transform))
{
switch (rule.m_Output)
{
case TilingRule.OutputSprite.Single:
case TilingRule.OutputSprite.Animation:
tileData.sprite = rule.m_Sprites[0];
break;
case TilingRule.OutputSprite.Random:
int index = Mathf.Clamp(Mathf.FloorToInt(GetPerlinValue(position, rule.m_PerlinScale, 100000f) * rule.m_Sprites.Length), 0, rule.m_Sprites.Length - 1);
tileData.sprite = rule.m_Sprites[index];
if (rule.m_RandomTransform != TilingRule.Transform.Fixed)
transform = ApplyRandomTransform(rule.m_RandomTransform, transform, rule.m_PerlinScale, position);
break;
}
tileData.transform = transform;
tileData.colliderType = rule.m_ColliderType;
break;
}
}
}