В общем, суть такова:
Я нажимаю на объект, он поворачивается на определённый градус и выполняет функцию которую получает из другого скрипта.
Пожалуйста, помогите!
вот это я повесил на объект который надо жать
Синтаксис:
Используется csharp
public class руль : MonoBehaviour
{
public GameObject engine;
public GameObject control_wheel;
private int count = 0;
public void OnMouseDown()
{
if (Input.GetMouseButtonDown(0))
{
engine.GetComponent<moving>().run();
control_wheel.transform.eulerAngles = new Vector3(-90, 0, 45);
count += 1;
if (count == 4)
{
control_wheel.transform.eulerAngles = new Vector3(-90, 0, 45);
engine.GetComponent<moving>().stop();
count = 0;
}
}
}
}
{
public GameObject engine;
public GameObject control_wheel;
private int count = 0;
public void OnMouseDown()
{
if (Input.GetMouseButtonDown(0))
{
engine.GetComponent<moving>().run();
control_wheel.transform.eulerAngles = new Vector3(-90, 0, 45);
count += 1;
if (count == 4)
{
control_wheel.transform.eulerAngles = new Vector3(-90, 0, 45);
engine.GetComponent<moving>().stop();
count = 0;
}
}
}
}
а вот это управляющий
Синтаксис:
Используется csharp
public class moving : MonoBehaviour
{
public GameObject poezd;
public float acceleration;
private float speed;
public GameObject[] waypoints;
public int num = 0;
public void run()
{
speed += acceleration * Time.deltaTime;
Move();
}
public void stop()
{
speed -= acceleration * Time.deltaTime;
Move();
}
private void Move()
{
gameObject.transform.LookAt(waypoints[num].transform.position);
gameObject.transform.position += gameObject.transform.forward * speed * Time.deltaTime;
}
}
{
public GameObject poezd;
public float acceleration;
private float speed;
public GameObject[] waypoints;
public int num = 0;
public void run()
{
speed += acceleration * Time.deltaTime;
Move();
}
public void stop()
{
speed -= acceleration * Time.deltaTime;
Move();
}
private void Move()
{
gameObject.transform.LookAt(waypoints[num].transform.position);
gameObject.transform.position += gameObject.transform.forward * speed * Time.deltaTime;
}
}