Search Unity

  1. Unity Asset Manager is now available in public beta. Try it out now and join the conversation here in the forums.
    Dismiss Notice
  2. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  3. Unity support for visionOS is now available. Learn more in our blog post.
    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:
    27
    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