Пример #1
0
 /// <summary>
 /// Attempts to save the static reference of the controller
 /// </summary>
 static void Save()
 {
     // This can only be true if the editor is going into playmode
     if (!Application.isPlaying && EditorApplication.isPlayingOrWillChangePlaymode)
     {
         IOHandler.SaveController();
     }
 }
Пример #2
0
        /// <summary>
        /// Get all the data in this instance of the class
        /// </summary>
        /// <param name="parents">A list of the crowd source objects in the scene</param>
        /// <returns>The data in this instance of the class</returns>
        public GroupData GetData(List <GameObject> parents)
        {
            var _outData = new GroupData();

            _outData._name = _groupName;
            // save crowd members
            if (_crowdMembers.Count > 0)
            {
                _outData._groupMembers = new MemberData[_crowdMembers.Count];

                for (int i = 0; i < _crowdMembers.Count; i++)
                {
                    var _member = _crowdMembers[i];

                    var _memberData = new MemberData();

                    _memberData.source = -1;

                    for (int j = 0; j < parents.Count; j++)
                    {
                        if (_member.transform.parent.gameObject == parents[j])
                        {
                            Debug.Log("found the source");
                            _memberData.source = j;
                            break;
                        }
                    }

                    _memberData._transform = IOHandler.GetTransformData(_member.transform);
                }
            }

            if (_models.Count > 0)
            {
                _outData._models = new ModelData[_models.Count];

                for (int i = 0; i < _models.Count; i++)
                {
                    for (int j = 0; j < _models[i]._LODLevel.Length; j++)
                    {
                        //_outData._models[i]._modelNames[j] = _models[i]._LODLevel[j];
                        // Resources.Lo
                    }
                }
            }

            return(_outData);
        }
Пример #3
0
        /// <summary>
        /// Constructs a new crowd group based on data
        /// </summary>
        /// <param name="data">group object data</param>
        /// <param name="sources">list of crowd sources in the scene</param>
        /// <param name="prefab">crowd member to generate group for</param>
        public CrowdGroup(GroupData data, List <GameObject> sources, GameObject prefab)
        {
            _groupName = data._name;

            _crowdMembers = new List <GameObject>();
            _models       = new List <ModelWrapper>();

            //instantiate and initialise crowd members inside new group
            if (data._groupMembers != null)
            {
                for (int i = 0; i < data._groupMembers.Length; i++)
                {
                    var _newMember  = GameObject.Instantiate(prefab);
                    var _memberData = data._groupMembers[i];

                    _newMember.transform.position = IOHandler.GetPosition(_memberData._transform);
                    _newMember.transform.rotation = IOHandler.GetRotation(_memberData._transform);

                    if (_memberData.source > 0 && _memberData.source < sources.Count)
                    {
                        _newMember.transform.parent = sources[_memberData.source].transform;
                    }

                    _crowdMembers.Add(_newMember);
                }
            }

            if (data._models != null)
            {
                // not complete
                for (int i = 0; i < data._models.Length; i++)
                {
                    int _length = data._models[i]._modelNames.Length;

                    var _models = new GameObject[_length];

                    for (int j = 0; j < _length; j++)
                    {
                        var _modelName = data._models[i]._modelNames[j];
                        //_models[i] = Resources.Load()
                    }
                }
            }
        }
        /// <summary>
        /// Function for when the editor saves
        /// </summary>
        /// <param name="paths"> array of asset information</param>
        /// <returns> the array of paths unmodified</returns>
        static string[] OnWillSaveAssets(string[] paths)
        {
            IOHandler.SaveController();

            return(paths);
        }