我无法在 Unity 中为我的预制件分配脚本
Posted
技术标签:
【中文标题】我无法在 Unity 中为我的预制件分配脚本【英文标题】:I cannot assign a script to my prefab in Unity 【发布时间】:2021-11-21 18:56:07 【问题描述】:我一直试图在实例化分配此脚本后立即获取我的预制件,但我环顾四周,只得到一些模糊的答案,以下脚本位于预制件上:
public float speed;
public float lifeTime;
public float distance;
public ShootingMechanic ShootScript;
public LayerMask whatIsSolid;
private void Start()
ShootScript = GameObject.Find("gun").GetComponent<ShootingMechanic>();
Invoke("DestroyProjectile", lifeTime);
void DestroyProjectile()
//Instantiate(DestroyEffect, transform.position, Quaternion.identity);
Destroy(gameObject);
public void Update()
transform.Translate(Vector2.up * speed * Time.deltaTime);
RaycastHit2D hitInfo = Physics2D.Raycast(transform.position, transform.up, distance, whatIsSolid);
if(hitInfo.collider != null)
if (hitInfo.collider.CompareTag("Enemy"))
DestroyProjectile();
hitInfo.collider.GetComponent<Enemy>().TakeDamage(ShootScript.damagePerShot);
【问题讨论】:
您发布的代码不完整,而且您的问题含糊不清,请编辑它。 这段代码没有实例化任何东西。 【参考方案1】:在你的 givin 脚本中你 intantiate 的唯一地方是在 Destroyed 方法中,即使在那里它也是//注释的。 请随意删除此问题
【讨论】:
嗯,你看我有另一个脚本从这个脚本中抓取,比如“stat hub”或类似的东西,因此我想分配这个脚本,这样我就可以抓取一个变量来编辑东西从我的“统计中心” 你知道“公共”变量的用途吗?还是静态的?这些都是不同的,例如,当您想在另一个脚本中读取和更改它时使用公共变量,当您不想更改或从脚本中读取它时使用私有变量,静态变量仅用于在另一个脚本中读取它脚本。 等等,我没有意识到,花了一点时间,但我会在有机会时尝试使用静态变量!以上是关于我无法在 Unity 中为我的预制件分配脚本的主要内容,如果未能解决你的问题,请参考以下文章