[TASK] Initial commit with basic product setup
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
namespace Mapbox.Unity.MeshGeneration.Components
|
||||
{
|
||||
using UnityEngine;
|
||||
using System.Linq;
|
||||
using Mapbox.Unity.MeshGeneration.Data;
|
||||
using System;
|
||||
|
||||
public class FeatureBehaviour : MonoBehaviour
|
||||
{
|
||||
public VectorEntity VectorEntity;
|
||||
public Transform Transform;
|
||||
public VectorFeatureUnity Data;
|
||||
|
||||
[Multiline(5)]
|
||||
public string DataString;
|
||||
|
||||
public void ShowDebugData()
|
||||
{
|
||||
DataString = string.Join("\r\n", Data.Properties.Select(x => x.Key + " - " + x.Value.ToString()).ToArray());
|
||||
}
|
||||
|
||||
public void ShowDataPoints()
|
||||
{
|
||||
foreach (var item in VectorEntity.Feature.Points)
|
||||
{
|
||||
for (int i = 0; i < item.Count; i++)
|
||||
{
|
||||
var go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
||||
go.name = i.ToString();
|
||||
go.transform.SetParent(transform, false);
|
||||
go.transform.localPosition = item[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Initialize(VectorEntity ve)
|
||||
{
|
||||
VectorEntity = ve;
|
||||
Transform = transform;
|
||||
Data = ve.Feature;
|
||||
}
|
||||
|
||||
public void Initialize(VectorFeatureUnity feature)
|
||||
{
|
||||
Transform = transform;
|
||||
Data = feature;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1dd19505b960fb645953659207ca4bef
|
||||
timeCreated: 1485208038
|
||||
licenseType: Pro
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,89 @@
|
||||
namespace Mapbox.Unity.MeshGeneration.Components
|
||||
{
|
||||
using UnityEngine;
|
||||
using Random = UnityEngine.Random;
|
||||
using Mapbox.Unity.MeshGeneration.Data;
|
||||
|
||||
[RequireComponent(typeof(MeshRenderer))]
|
||||
public class TextureSelector : MonoBehaviour
|
||||
{
|
||||
private bool _useSatelliteRoof;
|
||||
private bool _textureTop;
|
||||
private bool _textureSides;
|
||||
|
||||
private UnityTile _tile;
|
||||
private MeshRenderer _meshRenderer;
|
||||
private Material[] _topTextures;
|
||||
private Material[] _sideTextures;
|
||||
|
||||
public void Initialize(VectorEntity ve, bool doTextureTop, bool useSatelliteRoof, Material[] topTextures, bool doTextureSides, Material[] sideTextures)
|
||||
{
|
||||
_useSatelliteRoof = useSatelliteRoof;
|
||||
_textureTop = doTextureTop;
|
||||
_textureSides = doTextureSides;
|
||||
|
||||
_tile = GetComponent<UnityTile>();
|
||||
var t = transform;
|
||||
while (_tile == null && t.parent != null)
|
||||
{
|
||||
t = t.parent;
|
||||
_tile = t.GetComponent<UnityTile>();
|
||||
}
|
||||
_topTextures = topTextures;
|
||||
_sideTextures = sideTextures;
|
||||
_meshRenderer = GetComponent<MeshRenderer>();
|
||||
|
||||
if (_textureSides && _sideTextures.Length > 0)
|
||||
{
|
||||
_meshRenderer.materials = new Material[2]
|
||||
{
|
||||
_topTextures[Random.Range(0, _topTextures.Length)],
|
||||
_sideTextures[Random.Range(0, _sideTextures.Length)]
|
||||
};
|
||||
}
|
||||
else if (_textureTop)
|
||||
{
|
||||
_meshRenderer.materials = new Material[1]
|
||||
{
|
||||
_topTextures[Random.Range(0, _topTextures.Length)]
|
||||
};
|
||||
}
|
||||
|
||||
if (_useSatelliteRoof)
|
||||
{
|
||||
_meshRenderer.materials[0].mainTexture = _tile.GetRasterData();
|
||||
_meshRenderer.materials[0].mainTextureScale = new Vector2(1f, 1f);
|
||||
}
|
||||
}
|
||||
|
||||
//private void TextureTop(Material topmat)
|
||||
//{
|
||||
// if (_useSatelliteRoof)
|
||||
// {
|
||||
// topmat.mainTexture = _tile.ImageData;
|
||||
// topmat.mainTextureScale = new Vector2(1f, 1f);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// topmat.mainTextureScale = new Vector2(0.07f, 0.07f);
|
||||
// if (_topTextures.Any())
|
||||
// _meshRenderer.materials[0].SetTexture("_MainTex", );
|
||||
// }
|
||||
|
||||
// var c = 1 - (Random.Range(0, 10) / 40f);
|
||||
// _meshRenderer.materials[0].color = new Color(c, c, c);
|
||||
//}
|
||||
|
||||
//private void TextureSides(Material sidemat)
|
||||
//{
|
||||
// var c = 1 - (Random.Range(0, 10) / 40f);
|
||||
// _meshRenderer.materials[1].color = new Color(c, c, c);
|
||||
|
||||
// if (_sideTextures.Any())
|
||||
// _meshRenderer.materials[1].SetTexture("_MainTex", _sideTextures[Random.Range(0, _sideTextures.Length)]);
|
||||
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 97464c54f6d369444b297e02ee300633
|
||||
timeCreated: 1485208041
|
||||
licenseType: Pro
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,46 @@
|
||||
namespace Mapbox.Unity.MeshGeneration.Components
|
||||
{
|
||||
using UnityEngine;
|
||||
|
||||
public class VertexDebugger : MonoBehaviour
|
||||
{
|
||||
[Multiline(10)]
|
||||
public string Triangles;
|
||||
[Multiline(10)]
|
||||
public string Tangents;
|
||||
|
||||
protected virtual void Start()
|
||||
{
|
||||
var mf = GetComponent<MeshFilter>();
|
||||
if (mf)
|
||||
{
|
||||
var mesh = mf.mesh;
|
||||
var verts = mesh.vertices;
|
||||
var tang = mesh.tangents;
|
||||
for (int i = 0; i < verts.Length; i++)
|
||||
{
|
||||
var go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
||||
go.name = i.ToString();
|
||||
go.transform.SetParent(transform, false);
|
||||
go.transform.localPosition = verts[i];
|
||||
|
||||
Debug.DrawLine(transform.position + verts[i], transform.position + verts[i] + new Vector3(tang[i].x, tang[i].y, tang[i].z) * .5f, Color.red, 10000);
|
||||
}
|
||||
var tris = mesh.triangles;
|
||||
Triangles = "";
|
||||
for (int i = 0; i < tris.Length; i += 3)
|
||||
{
|
||||
Triangles += tris[i] + "," + tris[i + 1] + "," + tris[i + 2] + "\r\n";
|
||||
}
|
||||
|
||||
//var tang = mesh.tangents;
|
||||
//Tangents = "";
|
||||
//for (int i = 0; i < tang.Length; i += 1)
|
||||
//{
|
||||
// Tangents += tang[i].x + "," + tang[i].y + "," + tang[i].z + "," + tang[i].w + "\r\n";
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 74c6dd1076bc8954dad41ed4206c598d
|
||||
timeCreated: 1499870729
|
||||
licenseType: Pro
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,48 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Mapbox.Unity.MeshGeneration.Components
|
||||
{
|
||||
public class VertexDebuggerGizmo : MonoBehaviour
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
[SerializeField]
|
||||
float _radius = .2f;
|
||||
|
||||
[SerializeField]
|
||||
Color _color = new Color(0, 1, 0, .5f);
|
||||
|
||||
[Multiline(10)]
|
||||
public string Triangles;
|
||||
|
||||
Mesh _mesh;
|
||||
|
||||
protected virtual void Start()
|
||||
{
|
||||
var mf = GetComponent<MeshFilter>();
|
||||
if (mf)
|
||||
{
|
||||
_mesh = mf.mesh;
|
||||
var tris = _mesh.triangles;
|
||||
Triangles = "";
|
||||
for (int i = 0; i < tris.Length; i += 3)
|
||||
{
|
||||
Triangles += tris[i] + "," + tris[i + 1] + "," + tris[i + 2] + "\r\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void OnDrawGizmosSelected()
|
||||
{
|
||||
if (_mesh)
|
||||
{
|
||||
var verts = _mesh.vertices;
|
||||
for (int i = 0; i < verts.Length; i++)
|
||||
{
|
||||
Gizmos.color = _color;
|
||||
Gizmos.DrawWireCube(transform.position + verts[i] * transform.lossyScale.x, Vector3.one * _radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c4b8220219b204a288d4b67600489e3f
|
||||
timeCreated: 1499870729
|
||||
licenseType: Pro
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user