Version: 2019.1

SerializedProperty.GetFixedBufferElementAtIndex

Switch to Manual
public SerializedProperty GetFixedBufferElementAtIndex (int index);

Description

Returns the element at the specified index in the fixed buffer.

using UnityEngine;
using UnityEditor;

[System.Serializable] public unsafe struct TestStruct { public fixed int intBuffer[7]; }

public unsafe class TestScript : MonoBehaviour { public TestStruct testStruct;

void Start() { fixed(int* buffer = testStruct.intBuffer) { for (int i = 0; i < 7; ++i) buffer[i] = 3 + i; }

var so = new SerializedObject(this); var prop = so.FindProperty("testStruct.intBuffer");

Debug.Log("isFixedBuffer = " + prop.isFixedBuffer); Debug.Log("fixedBufferSize = " + prop.fixedBufferSize);

var elemProp = prop.GetFixedBufferElementAtIndex(2);

Debug.Log("GetFixedBufferElementAtIndex(2) = " + elemProp.intValue);

elemProp.intValue = 42;

so.ApplyModifiedProperties();

fixed(int* buffer = testStruct.intBuffer) { Debug.Log("intBuffer[2] = " + buffer[2]); } } }