所以我从json文件/ url
动态添加图像到滚动视图我喜欢让图片可以点击游戏对象,但不知道如何在c#中做到这一点(void OnMouseDown()???)
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;
}
答案 0 :(得分:3)
这是Image
/ Canvas
。您应该避免使用Raycast
和OnMouseDown
。要使用Image / Canvas检测触摸,您必须从IPointerDownHandler
或IPointerClickHandler
派生,然后从中实现这些功能。如果对象是 3D 模型,或者对象是<{1}},则OnMouseDown
或Raycast
应仅 <在Sprite
下强>不。在这种情况下,需要对撞机。在这种情况下,您使用的是Canvas
组件,因此我假设它位于Image
下。
Canvas
答案 1 :(得分:0)
尝试创建一个附加到该GameObject的BoxCollider2D对象,然后使用
Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Mouse.position),Vector2.zero);
测试Mouse.position中是否有任何Collider。