2014-07-10 94 views
0

在脚本代码中,我想添加更改其精灵的可能性。所以玩家将鼠标悬停在精灵上,它会变成已经添加到项目中的其他精灵。你能否提供一个示例代码来做到这一点?更改鼠标移动时的精灵

var newSprite : Sprite; 
function Start() { 
print(gameObject.name); 
} 
void OnMouseEnter() 
{ 
print("hii detected"); 
//targetGui.texture = hoverTex; 
GetComponent(SpriteRenderer).sprite = newSprite;   
} 

void OnMouseExit() 

{ 

} 
+0

那么,你的问题是什么? 'OnMouseEnter'被触发时,你的精灵是否正确地改变了?或者当你想触发'OnMouseExit'时想让精灵变回来吗? –

+0

当图像被点击并拖到场景中时,当鼠标放在它上面时,鼠标悬停未被检测到。为什么..这是我的问题....但是当我尝试在gu纹理上它工作正常... wt s的问题... – indira

回答

2

您可以将这两个精灵都作为gameObjects。然后禁用newSprite对象的Sprite渲染器并将该脚本附加到当前的Sprite(第一个Sprite)。

public GameObject newSprite; 
private Vector3 currentSpritePosition; 

void OnMouseEnter(){ 
    //getting the current position of the current sprite if ever it can move; 
    currentSpritePosition = transform.position; 

    //then make it invisible 
    renderer.enabled = false; 

    //give the new sprite the position of the latter 
    newSprite.transform.position = currentSpritePosition; 

    //then make it visible 
    newSprite.renderer.enabled = true; 
} 

void OnMouseExit(){ 
    //just the reverse process 
    renderer.enabled = true; 
    newSprite.renderer.enabled = false; 
} 

您也可以在魔鬼开始如下:

void Start(){ 
    newSprite.renderer.enabled = false; 
} 

编辑:您应该添加一个对撞机在当前精灵的OnMouseOverOnMouseExit工作。

+0

您是否将它用作Javascript或C#脚本?由于代码是用于C#的。 – Xlander

+0

非常感谢你先生........其工作.... :) ...谢谢你 –

+0

感谢你的评论..它的工作.. – indira