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

时间:2016-05-06 13:32:01

标签: c# unity3d

所以我从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;
}

2 个答案:

答案 0 :(得分:3)

这是Image / Canvas。您应该避免使用RaycastOnMouseDown。要使用Image / Canvas检测触摸,您必须从IPointerDownHandlerIPointerClickHandler派生,然后从中实现这些功能。如果对象是 3D 模型,或者对象是<{1}},则OnMouseDownRaycast应仅 <在Sprite下强>不。在这种情况下,需要对撞机。在这种情况下,您使用的是Canvas组件,因此我假设它位于Image下。

Canvas

答案 1 :(得分:0)

尝试创建一个附加到该GameObject的BoxCollider2D对象,然后使用

Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Mouse.position),Vector2.zero);

测试Mouse.position中是否有任何Collider。