我想在 Unity3D 上旋转一张扑克牌,所以当玩家点击卡片时,会显示卡片。
我阅读了文档,到目前为止,我能够使用以下代码完成此操作:
public void OnMouseEnter()
{
transform.Rotate(Vector3.up);
}
现在我想使用以下代码通过 OnMouseDown() 来完成:
for (int i = 1; i == 90; i++)
{
transform.Rotate(Vector3.up);
}
但到目前为止它什么也没做。这个想法是自动轮换。
有什么想法吗???
最佳答案
piojo 的答案有效,但它不是在您单击卡片时启动,而是在您单击应用程序的任意位置时启动。
private bool isClicked = false;
void OnMouseDown() {
isClicked = true;
}
public float rotationSpeed = 100.0f;
void Update () {
if(isClicked) {
transform.Rotate(Vector3.up * Time.deltaTime * rotationSpeed);
}
}
此代码在名为 OnMouseDown
的事件上启动旋转。要在您点击卡片时触发它,您需要向 GameObject
添加 2D 或 3D collider。这些可以从 Add Component
-> Physics
或 Physics 2D
中找到。
我为 rotationSpeed 使用了公共(public)变量,因为它的值可以从 unity 编辑器中调整。
关于c# - OnMouseEnter 旋转变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28758444/