我有一个名为Player的 GameObject 。附加到 Player 有一个名为Player的脚本组件(相同) 在 Player 的脚本中,我有一个名为_weaponPrefab的字段(GameObject类型)
在 Inspector 中,我可以轻松地将任何预制件从我的 Prefab 文件夹中拖放到 _weaponPrefab 变量中。
到目前为止一切都很好。我想要存档的是:能够基于Collision2D添加我的预制件。因此,如果我的 Player 与 Prefab 发生碰撞,比如说是 Sword,则该剑的 prefab 将自动附加并插入到 Player 脚本中的 _weaponPrefab 字段中。
在我的播放器脚本下方:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
[SerializeField] private float _speed = 5.0f;
[SerializeField] private float _fireRate = 0.2f;
private bool _canFire = true;
[SerializeField] private GameObject _weaponPrefab; <- to populate runtime
// Use this for initialization
void Start ()
{
transform.position = Vector3.zero;
}
// Update is called once per frame
void Update ()
{
if (Input.GetKeyDown(KeyCode.Space) && _canFire)
StartCoroutine(Shoot());
}
void OnTriggerEnter2D(Collider2D other)
{
//here i don't know how to continue.
}
public IEnumerator Shoot()
{
_canFire = false;
Instantiate(_weaponPrefab, transform.position + new Vector3(0, 1, 0), Quaternion.identity);
yield return new WaitForSeconds(_fireRate);
_canFire = true;
}
}
小唯快跑啊
宝慕林4294392
相关分类