У меня есть готовое имя пуля.
Я вытащил сборный дом и положил его под оружие.
Сценарий включен, но при запуске игры сценарий выключен, и мне нужно включить его снова.
На скриншоте префаб пули посередине. Слева в иерархии пуля находится под SciFiRifle (клон), справа в Инспекторе, внизу есть скрипт с именем Shooting.
Сценарий включен.
Но потом, когда я запускаю игру, скрипт почему-то отключается:
Сначала по какой-то причине мне также нужно свернуть SciFiRifle (клон), чтобы снова увидеть пулю в иерархии:

И скрипт выключен:

Я не могу понять, почему он скрывает пулю в иерархии и отключает скрипт при запуске игры.
Сценарий:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shooting : MonoBehaviour
{
public GameObject projectile;
public Animator anim;
private void Start()
{
anim.SetBool("Shooting", true);
}
private void Update()
{
if (anim.GetBool("Shooting") == true)
{
GameObject bullet = Instantiate(projectile, transform.position, Quaternion.identity) as GameObject;
bullet.GetComponent<Rigidbody>().AddForce(transform.forward * 10, ForceMode.VelocityChange);
}
}
}
ОБНОВЛЕНИЕ:
Я нашел, что создает проблему. Пока нет, как это решить.
Вторым потомком в Иерархии Объекта является Sci-Fi_Soldier.
И к Sci-Fi_Soldier прикреплены некоторые скрипты, один из них - Player Controller, это не мой скрипт.
Некоторые свойства этого скрипта в Инспекторе получают Right Gun, который я назначил для Right Fun - SciFiRifle (Clone), а Bullet - потомок SciFiRifle (Clone).
Вы можете видеть это отмечено желтым:

Если я удаляю этот скрипт на всех контроллерах проигрывателя, сценарий «Стрельба по пуле» останется включенным и свернется.
Я не могу понять, в чем причина проблемы в скрипте Player Controller:
using UnityEngine;
using System.Collections;
[RequireComponent (typeof (Animator))]
public class PlayerController : MonoBehaviour {
public Transform rightGunBone;
public Transform leftGunBone;
public Arsenal[] arsenal;
private Animator animator;
void Awake() {
animator = GetComponent<Animator> ();
if (arsenal.Length > 0)
SetArsenal (arsenal[0].name);
}
public void SetArsenal(string name) {
foreach (Arsenal hand in arsenal) {
if (hand.name == name) {
if (rightGunBone.childCount > 0)
Destroy(rightGunBone.GetChild(0).gameObject);
if (leftGunBone.childCount > 0)
Destroy(leftGunBone.GetChild(0).gameObject);
if (hand.rightGun != null) {
GameObject newRightGun = (GameObject) Instantiate(hand.rightGun);
newRightGun.transform.parent = rightGunBone;
newRightGun.transform.localPosition = Vector3.zero;
newRightGun.transform.localRotation = Quaternion.Euler(90, 0, 0);
}
if (hand.leftGun != null) {
GameObject newLeftGun = (GameObject) Instantiate(hand.leftGun);
newLeftGun.transform.parent = leftGunBone;
newLeftGun.transform.localPosition = Vector3.zero;
newLeftGun.transform.localRotation = Quaternion.Euler(90, 0, 0);
}
animator.runtimeAnimatorController = hand.controller;
return;
}
}
}
[System.Serializable]
public struct Arsenal {
public string name;
public GameObject rightGun;
public GameObject leftGun;
public RuntimeAnimatorController controller;
}
}
Он скрывает Пуля в Иерархии, а также отключает скрипт Съемки. Но сценарий Съемки не используется нигде в Иерархии или каких-либо других сценариях. Но, пытаясь удалить сценарии, я обнаружил, что этот сценарий создает проблему с Bullet.
Это скриншот инспектора SciFiRifle (клон):
