コード例 #1
0
        private static NavStatus UnsafeCreate(byte[] serializedMesh
                                              , bool safeStorage
                                              , out Navmesh resultMesh)
        {
            if (serializedMesh == null || serializedMesh.Length == 0)
            {
                resultMesh = null;
                return(NavStatus.Failure | NavStatus.InvalidParam);
            }

            IntPtr root = IntPtr.Zero;

            NavStatus status = NavmeshEx.dtnmBuildDTNavMeshFromRaw(serializedMesh
                                                                   , serializedMesh.Length
                                                                   , safeStorage
                                                                   , ref root);

            if (NavUtil.Succeeded(status))
            {
                resultMesh = new Navmesh(root);
            }
            else
            {
                resultMesh = null;
            }

            return(status);
        }
コード例 #2
0
        private Navmesh(SerializationInfo info, StreamingContext context)
            : base(AllocType.External)
        {
            root = IntPtr.Zero;

            if (info.MemberCount != 1)
            {
                return;
            }

            byte[] data = (byte[])info.GetValue(DataKey, typeof(byte[]));
            NavmeshEx.dtnmBuildDTNavMeshFromRaw(data, data.Length, true, ref root);
        }