public class rock_player : MonoBehaviour {
static public int rock;
public const int MAX_ROCKS = 20;
[SerializeField]
public Text TextRock {get { return rock.ToString();}}
void Start(){
rock = 0;
}
}
public class RockTrig : MonoBehaviour {
public int ValueRock;
void OnTriggerEnter(Collider col) {
if(rock_player.rock + ValueRock > rock_player.MAX_ROCKS) {
ValueRock -= rock_player.MAX_ROCKS - rock_player.rock;
rock_player.rock = rock_player.MAX_ROCKS;
}else{
rock_player.rock += ValueRock;
Destroy (gameObject);
}
}
}
void ChangeColors() {
targetCountText.color = (Color)new Color32(Random.Range(0,256), Random.Range(0,256) , Random.Range(0,256),255);
}
public void CellClick(GameObject o){
if(o.GetType() == typeof(Car)){
Car car = (Car)o ;
//todo
}
if(o.GetType() == typeof(Animal)){
Animal animal= (Animal)o ;
//todo
}
}
public static void AddItem(int itemId, int Amount){
int inventoryCellCount = 20;//Количество ячеек инвентаря
int maxCount = GetMaxCountById(itemId);//Получить максимальное кол-во стека для этого айтема по ид
while(Amount > 0){
var item = Items.Find(item => item.id == itemId);
if(item == null || item.Amount == maxCount){
if(Items.Count >= inventoryCellCount)//Если ячейки инвентаря забиты
break;
item = CreateItemById(itemId);//создает итем по ид
Items.Add(item);
}
if(item.Amount + Amount > maxCount){
Amount = Amount - (maxCount - item.Amount);
item.Amount = maxCount;
}
else{
item.Amount += Amount;
Amount = 0;
}
}
}
public GameObject[] goArray;
public void Awake(){
foreach (var go in goArray)
go.GetComponent<Character>().isSelected = false;
}
public GameObject selected{//Вернет выделенного персонажа, если нет такого то null
get{
foreach (var go in goArray)
if (go.GetComponent<Character>().isSelected)
return go;
return null;
}
}
public void Update(){
if (Input.GetMouseButtonDown(0)){
var hit = Ray();
if (hit.collider.gameObject.tag == "Agent"){
var _ch = hit.collider.gameObject.GetComponent<Character>();
if(selected != null)
selected.isSelected = false;
_ch.isSelected = true;
} else if (hit.collider.gameObject.tag == "Ground"){
if(selected != null)
selected.GetComponent<Character>().agent.SetDestination(hit.point);
}
else if (selected != null)
selected.isSelected = false;
}
}
...
friend = GameObject.FindGameObjectsWithTag("Friend");
foreach (GameObject go in friend)
....
void update(){
int takeDist = 100;//зона подбора
bool isShowBtn = items.where(it=> getDist(player.x,player.y,it.x,it.y) <= takeDist ).count() > 0;
if(isShowBtn)
//show btn
else
//hide
}
public static double getDist(float x,float y,float x1,float y1){
return Math.Sqrt(Math.Pow(x1-x,2) + Math.Pow(y1-y,2));
}
var force = 5;
obj.velocity.x += collision.contacts[0].normal.x * force;
obj.velocity.y += collision.contacts[0].normal.y * force;
obj.velocity.z += collision.contacts[0].normal.z * force;
class LongNumber
{
public static readonly String[] symbols = { " ", "k", "m", "b", "$", "!", "#" };
List<short> values = new List<short>();
public LongNumber(){
foreach(var s in symbols )
values.Add(0);
}
public string getValue(bool isFull = false){//true полный вывод, false только более
if (isFull)
return String.Join(" ",values.Select((v, i) => v + symbols[i]));
var inx = symbols.Length;
while(inx > 0 && values[--inx] == 0){};
return String.Format("{0} {1}", values[inx], symbols[inx]);
}
public LongNumber add(long value, String sym = " "){//добавить
if (value < 0){
sub(-value);
return this;
}
if (!symbols.Contains(sym))
throw new FormatException("Неизвестный символ");
var inx = symbols.ToList().IndexOf(sym);
value += values[inx];
values[inx] = Convert.ToInt16(value % 1000);
if (value >= 1000)
{
if (inx == symbols.Length - 1)
throw new OverflowException("Достинуто максимально большое значение");
add(Convert.ToInt64(Math.Floor((double)value / 1000)), symbols[inx + 1]);
}
return this;
}
public static LongNumber valToNumber(long val,string sym = " "){//Число в LongNumber
return new LongNumber().add(val,sym);
}
public bool isLarger(LongNumber ln){//Сравнение , true если this больше
for (int i = values.Count - 1; i >= 0; i--)
if (values[i] > ln.values[i])
return true;
else if (values[i] < ln.values[i])
break;
return false;
}
public LongNumber sub(long value, String sym = " "){//вычесть
if (value < 0){
add(-value);
return this;
}
if (!symbols.Contains(sym))
throw new FormatException("Неизвестный символ");
if(LongNumber.valToNumber(value,sym).isLarger(this))
throw new OverflowException("Вычитаемое число больше");
var inx = symbols.ToList().IndexOf(sym);
value = values[inx] - value;
values[inx] = Convert.ToInt16(value%1000);
if (value < 0){
if (values[inx] < 0)
values[inx] += 1000;
sub(Convert.ToInt64(Math.Ceiling(Math.Abs((double)value / 1000))), symbols[inx + 1]);
}
return this;
}
}
class Program
{
static void Main(string[] args)
{
LongNumber ln = new LongNumber();
Console.WriteLine(ln.getValue());
ln.add(1000);
Console.WriteLine(ln.getValue());
ln.add(123456);
Console.WriteLine(ln.getValue(true));
ln.add(1000,"m");
Console.WriteLine(ln.getValue(true));
ln.sub(124456);
Console.WriteLine(ln.getValue(true));
ln.sub(1,"b");
Console.WriteLine(ln.getValue(true));
ln.add(1234564564);
Console.WriteLine(ln.getValue(true));
ln.sub(234565000);
Console.WriteLine(ln.getValue(true));
ln.sub(999999564);
Console.WriteLine(ln.getValue(true));
ln.sub(-123);
Console.WriteLine(ln.getValue());
ln.add(-123);
Console.WriteLine(ln.getValue());
Console.ReadKey();
}
}
0
1 k
456 124k 0m 0b 0$ 0! 0#
456 124k 0m 1b 0$ 0! 0#
0 0k 0m 1b 0$ 0! 0#
0 0k 0m 0b 0$ 0! 0#
564 564k 234m 1b 0$ 0! 0#
564 999k 999m 0b 0$ 0! 0#
0 0k 0m 0b 0$ 0! 0#
123
0
var angle = Math.Atan2(mousey - objy, mousex - objx);
var speed = 10*deltaTime;
objx += Math.cos(angle) * speed;
objy += Math.sin(angle) * speed;