版本: Unity 6 (6000.0)
语言英语
  • C#

SerializedProperty.GetFixedBufferElementAtIndex

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每个建议,并在必要时进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们改进 Unity 文档的质量。

关闭

取消

声明

public SerializedProperty GetFixedBufferElementAtIndex(int index);

描述

返回固定缓冲区中指定索引处的元素。

其他资源:isFixedBufferfixedBufferSize.

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]); } } }