Я пытаюсь отредактировать эффект пользователя. У меня есть программа, которая находит конкретный якорь, а затем меняет текстуру только этого якоря, например, потолок изменится от камня к дереву. Тем не менее, это работает только в том случае, если я установил источник данных MRUK в Prefab. Если я установите его на устройство или устройство с помощью Prefab Swarkback (оно должно быть на устройстве или устройстве с приготовлением Prefab), оно больше не функционирует и дает мне ошибку, показанную ниже в изображении и в тексте:
nullReferenceException: ссылка на объект не установлен на экземпляр объекта < /p>
textureChange+< waitforeffectmeshenchengence> d__4.movenext () (At Assets /textureChange.cs: 22) < /p>
вот код, который я использую ниже. Почему у меня есть эта ошибка, и как я могу ее исправить? Кроме того, настройки MRUK:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Meta.XR.MRUtilityKit;
public class TextureChange : MonoBehaviour
{
[SerializeField] private EffectMesh ceilingEffectMesh;
public Material meshMaterial;
public Texture texture1;
// Start is called before the first frame update
void Start()
{
StartCoroutine(WaitForEffectMeshThenChange());
}
private IEnumerator WaitForEffectMeshThenChange()
{
var room = MRUK.Instance.GetCurrentRoom();
while (room.CeilingAnchor &&
!ceilingEffectMesh.EffectMeshObjects.ContainsKey(room.CeilingAnchor))
{
yield return null;
}
var wrapper = ceilingEffectMesh.EffectMeshObjects[room.CeilingAnchor];
var meshGo = wrapper.effectMeshGO;
if (!meshGo)
{
Debug.LogError("No effectMeshGO found on wrapper!");
yield break;
}
meshGo.transform.SetParent(null, /* worldPositionStays= */ true);
meshMaterial = meshGo.GetComponent().material;
meshMaterial.mainTexture = texture1;
}
// Update is called once per frame
//void Update()
//{
// meshMaterial.mainTexture = texture1;
//}
}
< /code>
Вот несколько скриншотов, которые также показывают, как он выглядит, когда он работает и не работает. Как показано, изменение текстуры потолка, если она работает:
Работа с включенной префабацией < /p>
не работает с устройством или устройством с включенным отказа 30 ошибок < /li>
Я попытался переписать код
У меня действительно плохое понимание того, как редактировать определенные теги эффекта, поэтому я много боролся с этим. < /Li>
< /ul>
Подробнее здесь: https://stackoverflow.com/questions/797 ... -meta-unit
MRUK смешанная реальность - возникает проблемы с редактированием эффекта устройства (Meta Unity) ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение