Unity 6.3
0 онлайн 0 гостей 3 в системе
Вход

UnsafeUtility.MemCpyReplicate

Declaration

public static void MemCpyReplicate(void* destination, void* source, int size, int count);

Параметры

Параметр Описание
место назначения Указатель на блок памяти назначения. Убедитесь, что в этом блоке достаточно места для хранения реплицируемых данных.
источник Указатель на блок исходной памяти. Этот блок должен содержать данные, которые требуется реплицировать.
размер Размер в байтах блока данных для копирования и репликации. Этот параметр определяет количество байт, реплицируемых каждый раз.
Количество Количество раз, когда блок исходных данных должен быть реплицирован в буфере назначения.

Описание

Копирует память из источника в назначение и реплицирует ее несколько раз.

Метод MemCpyReplicate копирует указанный блок памяти из исходного расположения и репликирует этот блок несколько раз в конечное расположение. Это полезно для быстрой инициализации большого буфера с повторяющимися значениями, например, для создания постоянных буферов или инициализации больших массивов с повторяющимися шаблонами.

using UnityEngine;
using Unity.Collections.LowLevel.Unsafe;

public class MemCpyReplicateExample : MonoBehaviour { void Start() { int elementCount = 3; int replicateCount = 4; int dataSize = elementCount * sizeof(float);

// Use stackalloc to allocate memory for source and destination buffers unsafe { float* srcBuffer = stackalloc float[elementCount]; float* dstBuffer = stackalloc float[elementCount * replicateCount];

// Initialize the source buffer with multiple values srcBuffer[0] = 1.1f; srcBuffer[1] = 2.2f; srcBuffer[2] = 3.3f;

// Use MemCpyReplicate to copy and replicate the source values into the destination UnsafeUtility.MemCpyReplicate(dstBuffer, srcBuffer, dataSize, replicateCount);

// Output the contents of the destination buffer to verify replication Debug.Log("Contents of destination buffer after MemCpyReplicate:"); for (int i = 0; i < elementCount * replicateCount; i++) { Debug.Log(dstBuffer[i]); // Expected pattern: 1.1, 2.2, 3.3 repeated } } } }

Дополнительные ресурсы: ,UnsafeUtility.MemCpy,.