using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class fashe : MonoBehaviour {// Use this for initializationvoid Start () {//塔生成一个火球(火球在指定位置出现),火球朝着主角移动,火球碰到主角 火球消失}public GameObject fire;public GameObject pos;// Update is called once per framevoid Update () {if (Input.GetKeyDown(KeyCode.F)) {//生成一个火球Instantiate(fire,pos.transform.position,Quaternion.identity);}}
}
脚本上的公共属性fire的地址拖入预制物的地址,避免出现后来的Destroy方法而删除层级视图里的文件而报错。
第二步:以火球为对象重新生成个类描述火球的移动消失的动作。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class fireball : MonoBehaviour {Vector3 distance;void Start () {}void Update () {distance = GameObject.Find("Player").transform.position - transform.position;transform.position = transform.position + distance / 100;if (distance.magnitude < 5){Destroy(gameObject);print("火球销毁了");}}
}
通过每一帧火球的不同位置来表现火球的移动,火球的每一帧地址等于初始地址+设置的移动距离,移动距离会根据角色的移动每一帧都会有跟新。distance的magnitude属性会根据判断消失的距离大小来判定对象火球是否销毁。