Shader "GUI/3D Text Shader" {
Properties {
_MainTex ("Font Texture", 2D) = "white" {}
_Color ("Text Color", Color) = (1,1,1,1)
}
SubShader {
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
Lighting Off Cull Off ZWrite Off Fog { Mode Off }
Blend SrcAlpha OneMinusSrcAlpha
Pass {
Color [_Color]
SetTexture [_MainTex] {
combine primary, texture * primary
}
}
}
}
void OnGUI () {//Код проверялся в FixedUpdate, Update, OnGUI.OnGUI чтобы можно было проверить работу на устройстве, я не нашел как включить в плеере юнити эмуляцию тачей
if (Input.touchCount > 0) {
for(int i = 0; i < Input.touchCount; i++){
//if (Input.touches [i].phase == TouchPhase.Stationary) {//Здесь можно выбрать фазу
GUI.Label (new Rect(10,50,150,100), "Touch.pos.x=" + Input.touches [i].position.x.ToString());
GUI.Label (new Rect(150,50,150,100), "Touch.pos.y=" + ((float)Screen.height - Input.touches [i].position.y).ToString());//Ось Y перевернута "вверх ногами", решение (float)Screen.height - Input.touches [i].position.y
Vector2 rayPos = new Vector2 (Camera.main.ScreenToWorldPoint (new Vector3(Input.touches [i].position.x, Input.touches [i].position.y, 0f)).x,Camera.main.ScreenToWorldPoint (new Vector3(Input.touches [i].position.x, Input.touches [i].position.y, 0f)).y);
RaycastHit2D hit = Physics2D.Raycast (rayPos, Vector2.zero, 0f);
if (hit) {
//if(hit.transform.tag == "tag"){//Тег объекта по которому совершен тап
transform.position = new Vector3(transform.position.x,transform.position.y+0.1f,transform.position.z);
Debug.Log (hit.collider.name);
GUI.Label (new Rect(10,30,100,100),hit.collider.name);
//}
}
//}
}
}
}
/*!!!!!!!!!!!!!!!!-=Код тестовый=-!!!!!!!!!!!!!!!!!!!!!!*/
void OnTriggerStay(Collider collider)//коллайдер объекта в нашем коллайдере
{
float use = Input.GetAxis ("Use");//Игрок нажал юз
if (collider.transform.parent == null && use != 0 /*Input.GetKey(KeyCode.E)*/) {//Ели нет родителя то объект в тригере сам родитель, значит перемещать можно.
collider.gameObject.transform.position = new Vector3 (Obj_move_to.transform.position.x, Obj_move_to.gameObject.transform.position.y + 1f, Obj_move_to.transform.position.z);//Тупо перемещаем в позиции Obj_move_to, Obj_move_to - это приемная площадка телепортера в который отправляемся.
} else if (collider.transform.parent && use != 0) {//Если есть парент, значит в телепортер попало дите
GameObject parent = collider.transform.parent.gameObject;//моно заглючил, я сделал для удобства так
if (parent.transform.parent == null)//Если родитель не имеет родителя то его можно перемещать
{
parent.transform.position = new Vector3 (Obj_move_to.transform.position.x, Obj_move_to.gameObject.transform.position.y + 1f, Obj_move_to.transform.position.z);
}
}
}