添加可点击的游戏对象C#

所以我正在将图像从json文件/ url动态添加到滚动视图

我喜欢将图像设为可点击的游戏对象,但不知道如何在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");
   }

}

相关文章

前言 本文记录unity3D开发环境的搭建 unity安装 unity有中文...
前言 有时候我们希望公告牌跟随镜头旋转永远平行面向屏幕,同...
前言 经过一段时间的学习与实际开发,unity3D也勉强算是强行...
前言 在unity中我们常用的获取鼠标点击的方法有: 1、在3D场...
前言 在之前的例子中,我们都没有用到unity的精髓,例如地形...
这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画...