csharp DIできる状态で,动的にオブジェクトを生成する(普通にGameObject.Instantiateすると,生成されたオブジェクトにはDIされない))

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp DIできる状态で,动的にオブジェクトを生成する(普通にGameObject.Instantiateすると,生成されたオブジェクトにはDIされない))相关的知识,希望对你有一定的参考价值。

using UnityEngine;
using Zenject;

/// <summary>
/// DI できる状態で、動的にオブジェクトを生成する
/// (普通にInstantiateすると、生成されたオブジェクトには DI されない)
/// </summary>
public class EnemySpawner : MonoBehaviour
{
    [SerializeField] GameObject enemyPrefab = null;
    [SerializeField] Transform enemiesParentTransform = null;
    [SerializeField] float delay = 3f;
    [SerializeField] float span = 3f;
    [SerializeField] Vector3 offset = Vector3.zero;

    [Inject] DiContainer container = null;

    private void Start ()
        => InvokeRepeating ( nameof ( SpawnEnemy ), delay, span );

    private void SpawnEnemy ()
    {
        container.InstantiatePrefab(
            enemyPrefab, offset, Quaternion.identity,
            enemiesParentTransform);

        Debug.Log ( "Spawn" );
    }
}

以上是关于csharp DIできる状态で,动的にオブジェクトを生成する(普通にGameObject.Instantiateすると,生成されたオブジェクトにはDIされない))的主要内容,如果未能解决你的问题,请参考以下文章