Esempio n. 1
0
 /// <summary>
 /// ShotDataをもとに生成したActionをIteratorにセット or 単発なら実行するメソッド
 /// </summary>
 /// <param name="data">発射するShotData</param>
 public void SetUnityAction(AttackerType attackerType, BarrageData data, GameObject aim = default, GameObject target = default)
 {
     if (data == null)
     {
         return;
     }
     for (int i = 0; i < data.ShotDatas.Count; i++)
     {
         if (data.ShotDatas[i] == default || data.BulletDatas[i] == default)
         {
             continue;
         }
         if (data.ShotDatas[i].ShotType == ShotType.Normal && data.BulletDatas[i].BulletType == BulletType.Funnel)
         {
             continue;
         }
         var cnt = data.ShotDatas[i].Count;
         if (cnt > 1)
         {
             SetEvent(GetUnityAction(attackerType, data.ShotDatas[i], data.BulletDatas[i], aim, target), data.ShotDatas[i]);
         }
         else
         {
             GetUnityAction(attackerType, data.ShotDatas[i], data.BulletDatas[i], aim, target)(0.0f);
         }
     }
 }
Esempio n. 2
0
    public override void OnInspectorGUI()
    {
        BarrageData data = target as BarrageData;

        if (folding = EditorGUILayout.Foldout(folding, "BarrageData"))
        {
            EditorGUI.indentLevel++;
            if (Size == -1)
            {
                Initialize();
                for (int i = data.ShotDatas.Count - 1; i >= 0; i--)
                {
                    if (data.ShotDatas[i] == default && data.BulletDatas[i] == default)
                    {
                        BothRemoveAt(i);
                    }
                }
                Size = EditorGUILayout.IntField("Size", data.ShotDatas.Count);
            }
            else
            {
                Size = EditorGUILayout.IntField("Size", Size);
                for (int i = data.ShotDatas.Count - 1; i >= Size; i--)
                {
                    BothRemoveAt(i);
                }
            }
            // リスト表示
            EditorGUILayout.LabelField("ShotData / BulletData");
            for (int i = 0; i < Size; i++)
            {
                EditorGUILayout.BeginHorizontal();
                if (i >= data.ShotDatas.Count || i >= data.BulletDatas.Count)
                {
                    BothAdd();
                }
                if (data.ShotDatas[i] != default)
                {
                    data.ShotDatas[i] = EditorGUILayout.ObjectField(data.ShotDatas[i], typeof(ShotData), false, GUILayout.MinWidth(100)) as ShotData;
                }
                else
                {
                    data.ShotDatas[i] = data.ShotDatas[i] = EditorGUILayout.ObjectField(default, typeof(ShotData), false, GUILayout.MinWidth(100)) as ShotData;