using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class Utils {
//安全的获得一个组件
public static T GetSafeComponet<T>(GameObject target) where T:Behaviour
{
T t = target.GetComponent<T>();
if (t == null)
t = target.AddComponent<T>();
return t;
}
//从min到max中获得无重复列表
public static List<int> GetRandomNoSame(int minNum, int maxNum, int ResultCount)
{
List<int> numbers = new List<int>();
List<int> finals = new List<int>();
for (int i = minNum; i < maxNum; i++)
numbers.Add(i);
for (int i = 0; i < ResultCount; i++)
{
int index = Random.Range(0, numbers.Count);
//Debug.Log(numbers[index]);
finals.Add(numbers[index]);
numbers.RemoveAt(index);
}
return finals;
}
/// <summary>
/// 一次创建多级目录中的文件
/// </summary>
/// <param name="path">d:/aa/bb/c.txt</param>
public static void CreateFileRecuIfNotExist(string path)
{
string dir = Path.GetDirectoryName(path);
CreateDirRecuIfNotExist(dir);
CreateFileIfNotExist(path);
}
/// <summary>
/// 一次创建多级目录
/// </summary>
/// <param name="dir">d:/aa/bb</param>
public static void CreateDirRecuIfNotExist(string dir)
{
if (dir.Contains("/"))
{
string[] p = dir.Split('/');
string str = p[0];
CreateDirIfNotExist(str);
for (int i = 1; i < p.Length; i++)
{
str += "/" + p[i];
CreateDirIfNotExist(str);
}
}
}
public static void CreateDirIfNotExist(string dir)
{
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
}
public static FileStream CreateFileIfNotExist(string path)
{
if (!File.Exists(path))
return File.Create(path);
return null;
}
}