Как да преместите обект с курсора
Текущ час: 25 април 2019 г. 05:51 ч
- Списък с форуми‹ Unity3D‹ Скриптове
- Промяна на размера на шрифта
- За печат
- поддържа
- Регистрация
- ЧЗВ
- Регистрация
- Вход
Как да преместите обект с курсора?
Как да преместите обект с курсора?
неизвестен 30 ноември 2014 г. 22:42 ч
използване на UnityEngine; използване на System.Collections ;
публичен клас PlayerController : MonoBehavior
частен байт играч = 0; protected bool can = false; частна плаваща скорост = 1f;
private Vector3 LastPosition;
// Използвайте това за инициализация void Start ( )
if (Input. GetMouseButtonUp (0)) can = false;
if ( can == true ) < Vector3 MousePos = Камера. основен. ScreenToViewportPoint( Input.mousePosition) ; Последна позиция -= MousePos ; Игрови обект. Намерете ("air_red"). трансформирам . позиция = нов Vector3 ( GameObject . Find ( "air_red" ) . transform . position . x + LastPosition. x , GameObject . Find ( "air_red" ) . transform . position . y , GameObject . Find ( "air_red" ) . transform . position . z ) ; Отстраняване на грешки. LogWarning ( GameObject . Find ( "air_red" ) . transform . position . x . ToString ( ) + " :: " + LastPosition. x . ToString ( ) ) ; Последна позиция = MousePos; > > >
"air_red" Това е родителят, в който се намира "Player_Red". Защо написах по този начин с този Raycast, всичко това защото "Player_Red" се намира точно в центъра на "air_red" и може също да се щракне върху него, но родителят трябва да бъде преместен
Re: Как да преместя обект с курсора?
неизвестно 1 декември 2014 г., 15:41 ч
използване на UnityEngine; използване на System.Collections ;
публиченклас PlayerController: MonoBehaviour
частен байт играч = 0; protected bool can = false; частна плаваща скорост = 1f;
private Vector3 LastPosition;
// Използвайте това за инициализация void Start ( )
// Актуализацията се извиква веднъж на кадър void Update ( ) < ако ( Input. GetMouseButton ( 0 ) ) < RaycastHit хит; Лъч лъч = Камера. основен . ScreenPointToRay ( Input. mousePosition ) ; if ( Physics. Raycast ( ray, out hit ) && hit. transform != null ) if ( player == 0 && hit. transform . gameObject . name == "air_red" player == 0 && hit. transform . gameObject . name == "Player_Red" ) can = true ; >
if (Input. GetMouseButtonUp (0)) can = false;
if ( can == true ) < //GameObject.Find("air_red").transform.position = new Vector3(MousePos.x, GameObject.Find("air_red").transform.position.y, MousePos.z); Игрови обект. Намерете ("air_red"). трансформирам . Превод (( Input. GetAxis ("Mouse X") * speed * Time. deltaTime ) * (-1) , 0 , (Input. GetAxis ("Mouse Y") * speed * Time. deltaTime ) * (- 1 ) ) ; //Debug.LogWarning(GameObject.Find("air_red").transform.position.x.ToString() + " :: " + (Input.GetAxis("Mouse X") * скорост * Time.deltaTime).ToString()); > > >
Re: Как да преместя обект курсором?
bwolf88 01 декември 2014 г., 18:07
А в какво пространство вие премещаете обект ? Можно например да използвате Рейкастинг и при съприкосновения с повърхността да преместите обекта в необходимата позиция, но за това е необходимо да създадете допълнителна платформа, за да бъде от това, което е най-добре отразено. Например ето - платформата се поднима по Y. Ако имате проблеми именно със самото движение, то създаватевременен обект от същия тип като разпределения. Когато щракнете върху него, вие присвоявате обект на този временен обект и го премествате просто като промените неговата transforn.position.
Re: Как да преместя обект с курсора?
getAlex 1 декември 2014 г., 18:35 ч
Re: Как да преместя обект с курсора?
Lailore 9 декември 2014 г., 01:39 ч