using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 子弹工厂(配合枚举型)
/// </summary>
public class BulletFactory
{
public static List<Bullet> CreateBullet(BulletType type, int count)
{
List<Bullet> list = null;
switch (type)
{
case BulletType.A:
list = BulletFactory.CreateA(count,type);
break;
case BulletType.B:
list = BulletFactory.CreateB(count,type);
break;
}
return list;
}
/// <summary>
/// 创造A类型的子弹
/// </summary>
/// <param name="count">子弹的数量</param>
/// <param name="_type">子弹的类型</param>
/// <returns></returns>
private static List<Bullet> CreateA(int count,BulletType _type)
{
List<Bullet> list = new List<Bullet>(count);
for (int i = 0; i < count; i++)
{
//设置子弹的类型
GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
//子弹的旋转
// obj.transform.Rotate(new Vector3(90f,0f,0f));
//设置子弹的大小
obj.transform.localScale = new Vector3(0.1f,0.1f,0.1f);
//设置子弹的颜色
obj.GetComponent<Renderer>().material.color = Color.red;
Bullet bullet = obj.AddComponent<Bullet>();
//设置子弹的类型
bullet.type = _type;
//把子弹添加到链表中
list.Add(bullet);
}
return list;
}
/// <summary>
/// 创造B类型的子弹
/// </summary>
/// <param name="count">子弹的数量</param>
/// <param name="_type">子弹的类型</param>
/// <returns></returns>
private static List<Bullet> CreateB(int count,BulletType _type)
{
List<Bullet> list = new List<Bullet>(count);
for (int i = 0; i < count; i++)
{
//设置子弹的类型
GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Capsule);
//设置子弹的旋转
obj.transform.Rotate(new Vector3(90f,0f,0f));
obj.transform.localScale = new Vector3(0.007f, 0.01f, 0.007f);
Bullet bullet = obj.transform.gameObject.AddComponent<Bullet>();//obj.GetComponent<Bullet>();
//设置子弹的类型
bullet.type = _type;
//把子弹添加到链表中
list.Add(bullet);
}
return list;
}
}
/// <summary>
/// 子弹的类型
/// </summary>
public enum BulletType
{
A,B
};
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 子弹工厂(配合枚举型)
/// </summary>
public class BulletFactory
{
public static List<Bullet> CreateBullet(BulletType type, int count)
{
List<Bullet> list = null;
switch (type)
{
case BulletType.A:
list = BulletFactory.CreateA(count,type);
break;
case BulletType.B:
list = BulletFactory.CreateB(count,type);
break;
}
return list;
}
/// <summary>
/// 创造A类型的子弹
/// </summary>
/// <param name="count">子弹的数量</param>
/// <param name="_type">子弹的类型</param>
/// <returns></returns>
private static List<Bullet> CreateA(int count,BulletType _type)
{
List<Bullet> list = new List<Bullet>(count);
for (int i = 0; i < count; i++)
{
//设置子弹的类型
GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
//子弹的旋转
// obj.transform.Rotate(new Vector3(90f,0f,0f));
//设置子弹的大小
obj.transform.localScale = new Vector3(0.1f,0.1f,0.1f);
//设置子弹的颜色
obj.GetComponent<Renderer>().material.color = Color.red;
Bullet bullet = obj.AddComponent<Bullet>();
//设置子弹的类型
bullet.type = _type;
//把子弹添加到链表中
list.Add(bullet);
}
return list;
}
/// <summary>
/// 创造B类型的子弹
/// </summary>
/// <param name="count">子弹的数量</param>
/// <param name="_type">子弹的类型</param>
/// <returns></returns>
private static List<Bullet> CreateB(int count,BulletType _type)
{
List<Bullet> list = new List<Bullet>(count);
for (int i = 0; i < count; i++)
{
//设置子弹的类型
GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Capsule);
//设置子弹的旋转
obj.transform.Rotate(new Vector3(90f,0f,0f));
obj.transform.localScale = new Vector3(0.007f, 0.01f, 0.007f);
Bullet bullet = obj.transform.gameObject.AddComponent<Bullet>();//obj.GetComponent<Bullet>();
//设置子弹的类型
bullet.type = _type;
//把子弹添加到链表中
list.Add(bullet);
}
return list;
}
}
/// <summary>
/// 子弹的类型
/// </summary>
public enum BulletType
{
A,B
};