Я наконец нашел скрипт, который можно использовать с кнопкой GUI в проекте IOS. Я использую игровой движок Unity3d. Я немного знаком с кнопками JavaScript и анимацией, но совсем не знаком с C #. Моя проблема заключается в том, что я не знал, написать ли функцию, которая будет воспроизводить анимацию в очереди в скрипте кнопки C # при нажатии кнопки. Ниже приведена копия скрипта кнопки IOS, а затем код, необходимый для воспроизведения анимации в очереди.
using UnityEngine;
using System.Collections;
public enum Btn
{
normal,
hover,
armed
}
[System.Serializable] // Required so it shows up in the inspector
public class ButtonTextures
{
public Texture normal=null;
public Texture hover=null;
public Texture armed=null;
public ButtonTextures() {}
public Texture this [ButtonState state]
{
get
{
switch(state)
{
case ButtonState.normal:
return normal;
case ButtonState.hover:
return hover;
case ButtonState.armed:
return armed;
default:
return null;
}
}
}
}
[RequireComponent(typeof(GUITexture))]
[AddComponentMenu ("GUI/Button")]
public class GuiButton : MonoBehaviour
{
public GameObject messagee;
public string message = "";
public string messageDoubleClick = "";
public ButtonTextures textures;
protected int state = 0;
protected GUITexture myGUITexture;
private int clickCount = 1;
private float lastClickTime = 0.0f;
static private float doubleClickSensitivity = 0.5f;
protected virtual void SetButtonTexture(ButtonState state)
{
if (textures[state] != null)
{
myGUITexture.texture = textures[state];
}
}
public virtual void Reset()
{
messagee = gameObject;
message = "";
messageDoubleClick = "";
}
public bool HitTest(Vector2 pos)
{
return myGUITexture.HitTest(new Vector3(pos.x, pos.y, 0));
}
public virtual void Start()
{
myGUITexture = GetComponent(typeof(GUITexture)) as GUITexture;
SetButtonTexture(ButtonState.normal);
}
public virtual void OnMouseEnter()
{
state++;
if (state == 1)
SetButtonTexture(ButtonState.hover);
}
public virtual void OnMouseDown()
{
state++;
if (state == 2)
SetButtonTexture(ButtonState.armed);
}
public virtual void OnMouseUp()
{
if (Time.time - lastClickTime <= doubleClickSensitivity)
{
++clickCount;
}
else
{
clickCount = 1;
}
if (state == 2)
{
state--;
if (clickCount == 1)
{
if (messagee != null && message != "")
{
messagee.SendMessage(message, this);
}
}
else
{
if (messagee != null && messageDoubleClick != "")
{
messagee.SendMessage(messageDoubleClick, this);
}
}
}
else
{
state --;
if (state < 0)
state = 0;
}
SetButtonTexture(ButtonState.normal);
lastClickTime = Time.time;
}
public virtual void OnMouseExit()
{
if (state > 0)
state--;
if (state == 0)
SetButtonTexture(ButtonState.normal);
}
#if (UNITY_IPHONE || UNITY_ANDROID)
void Update()
{
int count = Input.touchCount;
for (int i = 0; i < count; i++)
{
Touch touch = Input.GetTouch(i);
if (HitTest(touch.position))
{
if (touch.phase == TouchPhase.Ended || touch.phase == TouchPhase.Canceled)
{
SetButtonTexture(ButtonState.normal);
}
else
{
SetButtonTexture(ButtonState.armed);
}
if (touch.phase == TouchPhase.Began)
{
if (touch.tapCount == 1)
{
if (messagee != null && message != "")
{
messagee.SendMessage(message, this);
}
}
else if (touch.tapCount == 2)
{
if (messagee != null && messageDoubleClick != "")
{
messagee.SendMessage(messageDoubleClick, this);
}
}
}
break;
}
}
}
#endif
}
Большая часть этого, похоже, имеет дело с состояниями кнопок, где моя сенсорная кнопка имеет только одно состояние, которое является «нормальным». Должны ли быть удалены ссылки на «зависание» и «вооруженный»? Я также получаю сообщение об ошибке в консоли: "тип или пространство имен" Состояние кнопки "не может быть найден. Вам не хватает директивы using или ссылки на сборку?"
Код для C # GUI Кнопка воспроизведения анимации в очереди, которую я хочу вставить, выглядит следующим образом:
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void Update() {
if (Input.GetButtonDown("Btn"))
animation.PlayQueued("shoot", QueueMode.PlayNow);
}
}
Я полагаю, фрагмент сценария анимации в очереди; Input.GetButtondown .... изменится на
* * 1010
и вставляется в строку 148 сценария кнопки GUI. Пожалуйста, помогите мне, если вы можете, я
чувствовать разбитым. Шутки в сторону! Любая помощь в переформатировании этого скрипта будет принята с благодарностью
и используется в качестве шаблона, так как у меня есть две другие кнопки GUI для настройки. Может быть, много спрашивать или для чего рай?
почтение,
Цифровой D
аналог человек,
в цифровом мире