Search Unity

  1. Get the latest news, tutorials and offers directly to your inbox with our newsletters. Sign up now.
    Dismiss Notice

The UNKNOWN_OBJECT_TYPE has been declared as [ReadOnly], but you are writing to it.

Discussion in 'AI & Navigation Previews' started by santadiego, Sep 15, 2020.

  1. santadiego

    santadiego

    Joined:
    Aug 31, 2014
    Posts:
    26
    SetTraitOnObjectAtIndex gives me a readonly error. what am I doing wrong?

    public IEnumerator Sleep(GameObject bedObject)
    {
    stateData = (StateData)m_Controller.CurrentStateData;
    var traitBasedObjects = new NativeList<int>(4, Allocator.TempJob);

    foreach (var needObjectIndex in stateData.GetTraitBasedObjectIndices(traitBasedObjects, new ComponentType[] { typeof(Need) }))
    {
    var need = stateData.GetTraitOnObjectAtIndex<Need>(needObjectIndex);
    if (need.NeedType == NeedType.Fatigue)
    {
    need.Urgency = 0;
    stateData.SetTraitOnObjectAtIndex(need, needObjectIndex);
    // alternatively SetValue works but is it the same?

    //m_NeedTraitData.SetValue(Need.FieldUrgency, need.Urgency);

    yield return null;
    }
    }
    traitBasedObjects.Dispose();
    yield return null;
    }
     
    Last edited: Sep 19, 2020
unityunity