用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界面:



wKiom1SxLxaQ1RZcAAL10lAz6uw252.jpg



你可能感兴趣的:(itween,实现一个球抛物线的效果)