unity3d炮塔攻擊案例C#程式設計
阿新 • • 發佈:2019-02-01
using System.Collections; using System.Collections.Generic; using UnityEngine; public class fashe : MonoBehaviour { // Use this for initialization void Start () { //塔生成一個火球(火球在指定位置出現),火球朝著主角移動,火球碰到主角 火球消失 } public GameObject fire; public GameObject pos; // Update is called once per frame void 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屬性會根據判斷消失的距離大小來判定物件火球是否銷燬。