1. 程式人生 > >unity3d炮塔攻擊案例C#程式設計

unity3d炮塔攻擊案例C#程式設計

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屬性會根據判斷消失的距離大小來判定物件火球是否銷燬。