コード例 #1
0
 void SelectStaticObject(StaticObject pObject)
 {
     GenHelpers.ResetSpriteSelection(mSObjSprite);
     mLayerType.value    = pObject.mRenderLayer;
     mColliderType.value = pObject.mColliderType;
     mEditoryBlock.Bind(new SerializedObject(pObject));
 }
コード例 #2
0
    VisualTreeAsset SetUpEnemy()
    {
        VisualTreeAsset aAsset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/UXML Files/EnemyEditor.uxml");

        mCurrentObjectElement     = aAsset.CloneTree();
        mEnAttackSound            = mCurrentObjectElement.Q <ObjectField>("enemy_attack_sound");
        mEnAttackSound.objectType = typeof(AudioClip);
        mEnAttackSound.RegisterCallback <ChangeEvent <Object> >((aEv) => GenHelpers.OnAttackSoundSelection((AudioClip)aEv.newValue, mEnAttackSound));
        mEnDeathSound            = mCurrentObjectElement.Q <ObjectField>("enemy_death_sound");
        mEnDeathSound.objectType = typeof(AudioClip);
        mEnDeathSound.RegisterCallback <ChangeEvent <Object> >((aEv) => GenHelpers.OnDeathSoundSelection((AudioClip)aEv.newValue, mEnDeathSound));
        mEnemyType = mCurrentObjectElement.Q <EnumField>("enemy_type");
        mEnemyType.Init(Enemy.Type.Collider);
        mEnemyType.RegisterCallback <ChangeEvent <System.Enum> >((aEv) => OnEnemyTypeChanged((Enemy.Type)aEv.newValue));
        mEnProjectile            = mCurrentObjectElement.Q <ObjectField>("enemy_projectile");
        mEnProjectile.objectType = typeof(Projectile);
        mEnProjectile.RegisterCallback <ChangeEvent <Object> >((aEv) => GenHelpers.OnEnemyProjectileSelection((Projectile)aEv.newValue, mEnProjectile));
        mEnemyAnimList = new ReorderableList(new List <AnimationData>(), typeof(AnimationData));
        mEnemyAnimList.drawHeaderCallback = (Rect aRect) =>
        {
            EditorGUI.LabelField(aRect, "Move Animation Sprites");
        };
        mEnemyAnimList.drawElementCallback = UpdateEnemyAnimationList;
        mEnemyAnimList.onAddCallback       = AddNewAnimation;
        mCurrentObjectElement.Q <IMGUIContainer>("enemy_animation_sprites").onGUIHandler = EnemyOnGUI;
        return(aAsset);
    }
コード例 #3
0
 void SelectSpawnFactory(SpawnFactory pSpawnFactory)
 {
     mLayerType.value = pSpawnFactory.mRenderLayer;
     GenHelpers.ResetSpawnEnemySelection(mSpawnEnemy);
     GenHelpers.ResetSpriteSelection(mFactorySprite);
     GenHelpers.ResetCollectSelection(mSpawnSound);
     mEditoryBlock.Bind(new SerializedObject(pSpawnFactory));
 }
コード例 #4
0
 void SelectPickable(Item pItem)
 {
     GenHelpers.ResetSpriteSelection(mItemSprite);
     GenHelpers.ResetCollectSelection(mItemSound);
     mLayerType.value = pItem.mRenderLayer;
     mItemType.value  = pItem.mItemType;
     mEditoryBlock.Bind(new SerializedObject(pItem));
 }
コード例 #5
0
    VisualTreeAsset SetUpStaticObject()
    {
        VisualTreeAsset aAsset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/UXML Files/StaticObjectEditor.uxml");

        mCurrentObjectElement  = aAsset.CloneTree();
        mSObjSprite            = mCurrentObjectElement.Q <ObjectField>("static_object_sprite");
        mSObjSprite.objectType = typeof(Sprite);
        mSObjSprite.RegisterCallback <ChangeEvent <Object> >((aEv) => GenHelpers.OnSpriteSelection((Sprite)aEv.newValue, mSObjSprite));
        mColliderType = mCurrentObjectElement.Q <EnumField>("static_object_collider");
        mColliderType.Init(GameScriptable.ColliderType.None);
        mColliderType.RegisterCallback <ChangeEvent <System.Enum> >((aEv) => OnColliderTypeChanged((GameScriptable.ColliderType)aEv.newValue));
        return(aAsset);
    }
コード例 #6
0
 void SelectEnemy(Enemy pEnemy)
 {
     mLayerType.value = pEnemy.mRenderLayer;
     mEnemyType.value = pEnemy.mEnemyType;
     GenHelpers.ResetDeathSoundSelection(mEnDeathSound);
     GenHelpers.ResetAttackSoundSelection(mEnAttackSound);
     GenHelpers.ResetProjectileSelection(mEnProjectile);
     if (pEnemy.mEnemyAnimations == null)
     {
         pEnemy.mEnemyAnimations = new List <AnimationData>();
     }
     mEnemyAnimList.list = pEnemy.mEnemyAnimations;
     mEditoryBlock.Bind(new SerializedObject(pEnemy));
 }
コード例 #7
0
    void SetDataFromUXML()
    {
        VisualTreeAsset aLevelDataAsset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/UXML Files/PerLevelEditor.uxml");

        mLevelData            = aLevelDataAsset.CloneTree();
        mGameMusic            = mLevelData.Q <ObjectField>("gameplay_music");
        mGameMusic.objectType = typeof(AudioClip);
        mGameMusic.RegisterCallback <ChangeEvent <Object> >((aEv) => GenHelpers.OnGamePlayMusicSelection((AudioClip)aEv.newValue, mGameMusic));
        mLevelData.Q <Button>("level_data").RegisterCallback <MouseUpEvent>((aEv) => SaveAsScriptableAsset());
        mMapContainer  = mLevelData.Q <IMGUIContainer>("level_map");
        mActiveBrushId = -1;
        GetAllScriptableObjects();
        mMapContainer.onGUIHandler = LevelMapOnGUI;
        mMapContainer.RegisterCallback <MouseUpEvent>(ClickGrid);
    }
コード例 #8
0
    VisualTreeAsset SetUpSpawnFactory()
    {
        VisualTreeAsset aAsset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/UXML Files/SpawnFactoryEditor.uxml");

        mCurrentObjectElement  = aAsset.CloneTree();
        mSpawnEnemy            = mCurrentObjectElement.Q <ObjectField>("spawn_enemy");
        mSpawnEnemy.objectType = typeof(Enemy);
        mSpawnEnemy.RegisterCallback <ChangeEvent <Object> >((aEv) => GenHelpers.OnSpawnEnemySelection((Enemy)aEv.newValue, mSpawnEnemy));
        mSpawnSound            = mCurrentObjectElement.Q <ObjectField>("spawn_sound");
        mSpawnSound.objectType = typeof(AudioClip);
        mSpawnSound.RegisterCallback <ChangeEvent <Object> >((aEv) => GenHelpers.OnCollectSoundSelection((AudioClip)aEv.newValue, mSpawnSound));
        mFactorySprite            = mCurrentObjectElement.Q <ObjectField>("factory_sprite");
        mFactorySprite.objectType = typeof(Sprite);
        mFactorySprite.RegisterCallback <ChangeEvent <Object> >((aEv) => GenHelpers.OnSpriteSelection((Sprite)aEv.newValue, mFactorySprite));
        return(aAsset);
    }
コード例 #9
0
    VisualTreeAsset SetUpPickable()
    {
        VisualTreeAsset aAsset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/UXML Files/PickableEditor.uxml");

        mCurrentObjectElement = aAsset.CloneTree();
        mItemType             = mCurrentObjectElement.Q <EnumField>("item_type");
        mItemType.Init(Item.Type.HealthBoost);
        mItemType.RegisterCallback <ChangeEvent <System.Enum> >((aEv) => OnItemTypeChanged((Item.Type)aEv.newValue));
        mItemSound            = mCurrentObjectElement.Q <ObjectField>("item_collect_sound");
        mItemSound.objectType = typeof(AudioClip);
        mItemSound.RegisterCallback <ChangeEvent <Object> >((aEv) => GenHelpers.OnCollectSoundSelection((AudioClip)aEv.newValue, mItemSound));
        mItemSprite            = mCurrentObjectElement.Q <ObjectField>("item_idle_sprite");
        mItemSprite.objectType = typeof(Sprite);
        mItemSprite.RegisterCallback <ChangeEvent <Object> >((aEv) => GenHelpers.OnSpriteSelection((Sprite)aEv.newValue, mItemSprite));
        return(aAsset);
    }
コード例 #10
0
 void OnTeleportSoundSelection(AudioClip pTeleportSound)
 {
     if (pTeleportSound == null)
     {
         return;
     }
     string[] aAssetFolder = { "Assets/ScriptableObjects/Asset Meta Data" };
     if (!AssetDatabase.IsValidFolder(aAssetFolder[0]))
     {
         GenHelpers.ShowSelectionWarning();
         ResetTeleportSelection();
         return;
     }
     string[] aAssetGUIDs = AssetDatabase.FindAssets(pTeleportSound.name, aAssetFolder);
     if (aAssetGUIDs.Length > 0)
     {
         string aPath = AssetDatabase.GUIDToAssetPath(aAssetGUIDs[0]);
         if (AssetDatabase.GetMainAssetTypeAtPath(aPath) == typeof(AssetMetaData))
         {
             AssetMetaData aCurrentAssetData = (AssetMetaData)AssetDatabase.LoadAssetAtPath(aPath, typeof(AssetMetaData));
             if (aCurrentAssetData.mType == AssetMetaData.AssetType.AudioAsset)
             {
                 mActivePlayer.mGUIDTeleportSound = aCurrentAssetData.mGUID;
                 mActivePlayer.mTeleportSound     = pTeleportSound;
             }
             else
             {
                 GenHelpers.ShowSelectionWarning();
                 ResetTeleportSelection();
                 return;
             }
         }
         else
         {
             GenHelpers.ShowSelectionWarning();
             ResetTeleportSelection();
             return;
         }
     }
     else
     {
         GenHelpers.ShowSelectionWarning();
         ResetTeleportSelection();
         return;
     }
 }
コード例 #11
0
 void OnProjectileSelection(Projectile pProjectile)
 {
     if (pProjectile == null)
     {
         return;
     }
     string[] aAssetFolder = { "Assets/ScriptableObjects/Asset Meta Data" };
     if (!AssetDatabase.IsValidFolder(aAssetFolder[0]))
     {
         GenHelpers.ShowSelectionWarning();
         ResetProjectileSelection();
         return;
     }
     string[] aAssetGUIDs = AssetDatabase.FindAssets(pProjectile.name, aAssetFolder);
     if (aAssetGUIDs.Length > 0)
     {
         string aPath = AssetDatabase.GUIDToAssetPath(aAssetGUIDs[0]);
         if (AssetDatabase.GetMainAssetTypeAtPath(aPath) == typeof(AssetMetaData))
         {
             AssetMetaData aCurrentAssetData = (AssetMetaData)AssetDatabase.LoadAssetAtPath(aPath, typeof(AssetMetaData));
             if (aCurrentAssetData.mType == AssetMetaData.AssetType.PrefabAsset)
             {
                 mActivePlayer.mGUIDProjectile = aCurrentAssetData.mGUID;
                 mActivePlayer.mProjectile     = pProjectile;
             }
             else
             {
                 GenHelpers.ShowSelectionWarning();
                 ResetProjectileSelection();
                 return;
             }
         }
         else
         {
             GenHelpers.ShowSelectionWarning();
             ResetProjectileSelection();
             return;
         }
     }
     else
     {
         GenHelpers.ShowSelectionWarning();
         ResetProjectileSelection();
         return;
     }
 }