小编Luc*_*ise的帖子

使用具有不同变量值的对象类实例化预制件 - Unity

所以这就是我想做的:

1)我有一个名为 bloby 的预制件,只是一个包含 Bloby 类脚本的简单球体(稍后会解释)。

2)我需要在屏幕中实例化10个bloby,但是每个bloby都有不同的速度,所以我创建了一个名为Bloby的类:

代码(CSharp):

public class Bloby : MonoBehaviour
{

public float speed;
public GameObject body;


public Bloby(float s, GameObject ga)
{
    this.speed = s;
    this.body = ga;
}

public void Instant(float xPos, float zPos)
{
    GameObject instance = Instantiate(this.body) as GameObject;
    instance.transform.position = new Vector3(xPos, 1, zPos);
}

}
Run Code Online (Sandbox Code Playgroud)

3)由于我正在实例化一个游戏对象,因此当我创建一个 Bloby 对象时,我将预制件作为参数传递并实例化。

4)这工作正常,当我调用 Bloby bloby = new Bloby(10, character); 时,我的 Bloby 会在屏幕中实例化。(角色是游戏对象)

5) 奇怪的是,当我的对象被实例化时,Bloby 脚本(附加到预制件)的变量值保持为 speed = 0,即使我在创建它时将其设置为 10 并且主体变量 =无效的。如果我在 Bloby 类上放置 Debug.Log(speed),它会显示 10,但脚本本身的变量值不会改变。 …

c# oop unity-game-engine

5
推荐指数
1
解决办法
6364
查看次数

标签 统计

c# ×1

oop ×1

unity-game-engine ×1