2014-09-03 4 views
1

У меня есть сценарий для левого движения, который я хочу использовать с моим символом спрайта в Unity3D. Я хочу, чтобы всякий раз, когда нажата guiTexture, спрайт перемещается. Вот скрипт для движения:Переместить 2D-символ с guiTexture

public float maxSpeed = 10f; 
public GameObject player; 


void Start() {} 

void FixedUpdate() { 

    float move = Input.GetAxis ("Horizontal"); 

    if (move < 0) { 
     move = move; 
    } 

    rigidbody2D.velocity = new Vector2 (move * maxSpeed, rigidbody2D.velocity.y); 

} 

ответ

1

Pass вы гуй текстуры сценарий игрока и назовите его «YourGuiTexture».

Существуют различные логично обнаружить GuiTexture ударил наиболее упрощенным ниже:

на клавиатуре:

public GUITexture YourGuiTexture; 

void Update() { 

    if (YourGuiTexture.HitTest(Input.mousePosition) //check if your mouse is on your gui texture 
    { 
     float move = Input.GetAxis ("Horizontal"); 

     if (move < 0) 

     { 
      move = move; 
     } 

     rigidbody2D.velocity = new Vector2 (move * maxSpeed, rigidbody2D.velocity.y); 
    } 

    } 

на сенсорных мобильных устройств:

public GUITexture YourGuiTexture; 

// Update is called once per frame 
void Update() 
{ 
    if (YourGuiTexture.HitTest(Input.GetTouch(0).position)) 
    { 

     if(Input.GetTouch(0).phase==TouchPhase.Began) 
     { 
      float move = Input.GetAxis ("Horizontal"); 

      if (move < 0) 

      { 
       move = move; 
      } 

      rigidbody2D.velocity = new Vector2 (move * maxSpeed, rigidbody2D.velocity.y); 
     }   
    } 
} 
+0

ли это еще работа на мобильных устройствах? –

+0

На самом деле мобильные устройства не имеют мыши, и большинство из них работают на сенсорной логике. Я также отредактировал свой ответ для мобильных устройств. –