C# 将相同的移动应用于所有繁殖预制(带列表)
脚本spawnunlimited使用invokererepeating移动预制体(立方体)创建的墙。如何在运行时将spawn预制体放入列表中,并在它们与玩家碰撞时停止它们 墙C# 将相同的移动应用于所有繁殖预制(带列表),c#,unity3d,C#,Unity3d,脚本spawnunlimited使用invokererepeating移动预制体(立方体)创建的墙。如何在运行时将spawn预制体放入列表中,并在它们与玩家碰撞时停止它们 墙 公共向量3[]位置=新向量3[4]; 公共游戏对象障碍; 浮动速度=1f; 无效开始() { 调用重复(“繁殖屏障”,1f,速度); } 虚空障碍物() { 对于(int i=0;i为移动创建一个新脚本,并将其附加到包含ontriggenter方法和静态事件动作的屏障预制件上: bool canMove = true;
公共向量3[]位置=新向量3[4];
公共游戏对象障碍;
浮动速度=1f;
无效开始()
{
调用重复(“繁殖屏障”,1f,速度);
}
虚空障碍物()
{
对于(int i=0;i为移动创建一个新脚本
,并将其附加到包含ontriggenter
方法和静态事件动作的屏障预制件上:
bool canMove = true;
void OnEnable()
{
PlayerTriggered += StopMoving;
}
void OnDisable()
{
PlayerTriggered -= StopMoving;
}
void StopMoving()
{
canMove = false;
}
void Update()
{
if(canMove)
// movement code
}
public static event System.Action PlayerTriggered;
void OnTriggerEnter(Collider other)
{
if(other.gameObject.CompareTag("Player"))
{
if(PlayerTriggered != null)
PlayerTriggered();
}
}
它将应用于所有墙壁(预制件)或仅应用于与玩家碰撞的预制件?对于所有墙壁,它不起作用,你确定它与InvokeRepeating一起起作用吗?你在哪里附加了脚本?到预制件!并写入如果可以移动,则gameObject.transform.Translate(0f,0f,-0.7f)
bool canMove = true;
void OnEnable()
{
PlayerTriggered += StopMoving;
}
void OnDisable()
{
PlayerTriggered -= StopMoving;
}
void StopMoving()
{
canMove = false;
}
void Update()
{
if(canMove)
// movement code
}
public static event System.Action PlayerTriggered;
void OnTriggerEnter(Collider other)
{
if(other.gameObject.CompareTag("Player"))
{
if(PlayerTriggered != null)
PlayerTriggered();
}
}