我喜欢将图像设为可点击的游戏对象,但不知道如何在c#中执行此操作(void onm ouseDown()???)
IEnumerator AddFeedItem (int index)
{
WWW www = new WWW (ModelURL); // img url
yield return www;
GameObject newsimageObject = tempFeedItem.transform.FindChild ("newsimage").gameObject;
Image newsImage = newsimageObject.GetComponent<Image> ();
Texture2D tempTex = photos [index % 10];
SpriteRenderer renderer = newsImage.GetComponent<SpriteRenderer>();
Sprite sprite = new Sprite();
sprite = Sprite.Create(www.texture, new Rect(0, 0, 455, 230),new Vector2(0, 0),100.0f);
newsImage.sprite = sprite;
}
解决方法:
这是图像/画布.您应该避免使用Raycast和OnMouseDown.要检测与Image / Canvas的接触,您必须使用派生自IPointerDownHandler或IPointerClickHandler的内容,然后从中实现功能.仅当对象是3D模型或对象是不在画布下的Sprite时,才应使用OnMouseDown或Raycast.在这种情况下,需要一个对撞机.在这种情况下,您使用的是Image组件,因此我假设它在Canvas下.
public class YourClass : MonoBehavIoUr,IPointerDownHandler,IPointerClickHandler
{
public void OnPointerClick(PointerEventData eventData)
{
Debug.Log("Clicked");
}
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("Down");
}
}