Example #1
0
        /// <summary>
        /// Load character from prefab by given path.
        /// </summary>
        public void Load(string path)
        {
            var character = UnityEditor.AssetDatabase.LoadAssetAtPath <Character4D>(path);

            if (character == null)
            {
                throw new Exception("Error loading character, please make sure you are loading correct prefab!");
            }

            if (Character4D != null)
            {
                Destroy(Character4D.gameObject);
            }

            Character4D = Instantiate(character, transform);
            Character4D.transform.localPosition = Vector3.zero;
            Shadow = Character4D.transform.Find("Shadow").gameObject;
            OnDirectionChanged(DirectionDropdown.value);

            var mat = new Material(Shader.Find("Sprites/Default"));

            foreach (var spriteRenderer in Character4D.GetComponentsInChildren <SpriteRenderer>())
            {
                if (spriteRenderer.name != "Eyes")
                {
                    spriteRenderer.material = mat;
                }
            }

            Debug.LogWarning("All materials were replaced by [Sprites/Default] to avoid outline artefacts.");
        }