capsuleMesh
- это переменная класса, определенная в классе CapsuleMesh
. Это не глобальная переменная, которую вы можете использовать везде. Вам нужна ссылка на экземпляр класса CapsuleMesh
, чтобы получить сетку, хранящуюся в переменной capsuleMesh
.
Я переработал оба ваших скрипта, чтобы они работали. Я заметил ошибку в ваших сценариях. Я думаю, ChangeMesh
предназначено для изменения сетки игрового объекта? Если это так, вам нужно присвоить новое значение meshFilter.mesh
. Назначение новой ссылки на переменную класса mesh
недостаточно (было бы довольно долго объяснять, почему)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CapsuleMesh : MonoBehaviour
{
public Mesh Mesh
{
get ; private set;
}
void Awake()
{
Mesh = GetComponent<MeshFilter>().mesh;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ChangeMesh : MonoBehaviour
{
// Drag & drop in the inspector the gameObject holding the `CapsuleMesh` component
public CapsuleMesh CapsuleMesh;
private MeshFilter meshFilter;
void Awake()
{
meshFilter = GetComponent<MeshFilter>();
}
void Start()
{
meshFilter.mesh = CapsuleMesh.Mesh;
}
}