这篇文章主要介绍了怎么用iTween实现一个鼠标点击一个地方平面中间出现一个向上抛然后下落的球,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
首先我们创建一个平面, 就用Cube来创建把,来X和Z设置成10,然后我们就有了一个地形了,然后我们创建需要生成的球,然后我们创建一个空物体,把我们的这个球放到这个空物体下面,然后制作成prefabs,然后我们建一个图标,这里我们就用Cube来代替这个图标,把颜色修改为红色,我们还需要创建一个空物体,让他离我们的地形Y为0.5f,主要是为了在这个地方实例化出球,然后我们在这个空物体上写一个C#脚本,
代码如下:
using UnityEngine;
using System.Collections;
public class SphereSpawn : MonoBehaviour
{
public GameObject spherePrefab;
public Transform redSphere;
void Update ()
{
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);//拿到点击屏幕的点
RaycastHit hitinfo;
bool isCollider = Physics.Raycast (ray, out hitinfo);//拿到碰撞的点
if (isCollider && hitinfo.collider.tag == "Ground") {
redSphere.position = hitinfo.point;
}
if (Input.GetMouseButtonDown (0)) {
//实例化小球
SpawnSphere();
}
}
void SpawnSphere()
{
GameObject go= GameObject.Instantiate(spherePrefab,transform.position,Quaternion.identity)as GameObject;
go.GetComponent<MoveSphere>().targetPosition=redSphere.position;
}
}
// 上面这里主要的功能是判断鼠标点击时间(用射线检测),和实例化球,
然后我们在我们的预设物体上面,是在父物体身上写一个脚本
using UnityEngine;
using System.Collections;
public class MoveSphere : MonoBehaviour
{
public Vector3 targetPosition;
//需要移动到的位置
private GameObject sphere;
void Start ()
{
//让球向上然后向下
sphere=transform.Find("Sphere").gameObject;
iTween.MoveTo (this.gameObject, iTween.Hash ("time", 2, "position", targetPosition, "easetype", iTween.EaseType.easeOutCubic));
iTween.FadeTo (this.gameObject, iTween.Hash ("time", 2, "delay", 2, "alpha", 0, "oncomplete", "destorySprere"));
iTween.MoveBy (sphere, iTween.Hash ("time", 1, "y", 5, "easetype", iTween.EaseType.easeOutCubic));
iTween.MoveBy (sphere, iTween.Hash ( "delay",1 ,"time", 1, "y", -5, "easetype", iTween.EaseType.easeInCubic));
}
void destorySprere ()
{
Destroy (this.gameObject);
}
}
//上面的代码主要是用iTween来实现实例化的球怎么运动和销毁物体
U3D界面:
感谢你能够认真阅读完这篇文章,希望小编分享的“怎么用iTween实现一个鼠标点击一个地方平面中间出现一个向上抛然后下落的球”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。