您的位置:首页 > 其它

用iTween实现一个鼠标点击一个地方平面中间出现一个向上抛然后下落的球

2015-01-10 21:54 501 查看
首先我们创建一个平面, 就用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界面:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐