43 lines
1022 B
C#
43 lines
1022 B
C#
using System;
|
|
using UnityEngine;
|
|
|
|
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer), typeof(MeshCollider))]
|
|
public class Chunk : MonoBehaviour
|
|
{
|
|
[HideInInspector]
|
|
public Vector3Int position;
|
|
[HideInInspector]
|
|
public Mesh mesh;
|
|
|
|
|
|
private MeshFilter _meshFilter;
|
|
private MeshRenderer _meshRenderer;
|
|
private MeshCollider _meshCollider;
|
|
|
|
private void Awake()
|
|
{
|
|
_meshFilter = GetComponent<MeshFilter>();
|
|
_meshCollider = GetComponent<MeshCollider>();
|
|
_meshRenderer = GetComponent<MeshRenderer>();
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
mesh.Clear();
|
|
}
|
|
|
|
public void Init(Vector3 offset, Mesh mesh, Material mat)
|
|
{
|
|
transform.position = offset;
|
|
this.mesh = mesh;
|
|
|
|
_meshFilter.sharedMesh = mesh;
|
|
|
|
_meshCollider.sharedMesh = mesh;
|
|
_meshCollider.enabled = false;
|
|
_meshCollider.enabled = true;
|
|
|
|
_meshRenderer.material = mat;
|
|
}
|
|
}
|