コード例 #1
0
        private void _OnDataSetUpdated(
            DataSet dataSet, XlsxParser.Errors errors)
        {
            if (errors.count > 0)
            {
                foreach (var error in errors)
                {
                    Debug.LogError(error);
                }
                _RefreshConsole();
                return;
            }
            var table   = dataSet["Object3D_Patch"];
            var changes = GetTableChanges(table, _oldTable);

            if (changes.Length > 0)
            {
                foreach (var change in changes.Split('\n'))
                {
                    Debug.Log(change);
                }
            }
            _oldTable = table;
            DataTable.Warnings warnings = null;
            warnings = table.GetObjectMappingWarnings <Object3D>();
            foreach (var warning in warnings)
            {
                Debug.LogWarning(warning);
            }
            var n = 0;

            warnings = table.Populate(_myObjects, () => {
                var inst = Object3D.Create();
                var x    = 3.0F * (n % 3);
                var z    = 3.0F * (n / 3);
                ++n;
                inst.transform.position = new Vector3(x, 3, z);
                return(inst);
            }, 0);
            foreach (var warning in warnings)
            {
                Debug.LogWarning(warning);
            }
            _RefreshConsole();
        }
コード例 #2
0
        IEnumerator Start()
        {
            var ftc    = new FieldTypeConverter();
            var parser = new XlsxParser(
                "res://XlsxParser_02".SetFieldTypeConverter(ftc)
                );

            yield return(parser.coroutine);

            if (parser.errors.count > 0)
            {
                Debug.LogWarning(parser.errors);
                yield break;
            }
            var table = parser.dataSet["Object3D"];

            DataTable.Warnings warnings = null;
            warnings = table.GetObjectMappingWarnings <Object3D>();
            if (warnings.count > 0)
            {
                Debug.LogWarning(warnings);
            }
            _myObjects = new Dictionary <string, Object3D>();
            var n = 0;

            // If key field is duplicated, will be overwritten.
            // To ensure key unique, use data validation in xlsx editor.
            // If keyFieldIndex is negative, key is set row order.
            warnings = table.Populate(_myObjects, () => {
                var inst = Object3D.Create();
                var x    = 3.0F * (n % 3);
                var z    = 3.0F * (n / 3);
                ++n;
                inst.transform.position = new Vector3(x, 3, z);
                return(inst);
            }, 0);
            if (warnings.count > 0)
            {
                Debug.LogWarning(warnings);
            }
        }