Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите ошибка в скрипте

Женя Миронов Ученик (105), на голосовании 1 месяц назад
скрипт C# не знаю где ошибка
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

public Transform bullet;
public Int BulletForce = 5000;
public Int Magaz = 15;

void Update () (
if (input.GetMouseButtonDown (0) & Magazin > 0) {
Transform BulletInstance = (Transform) Instance (bullet, GameObject.find ("spawn").transform.position, Quaternion.identity);
BulletInstance.GetComponent<Rigidbody> ().AddForce (transform.forward * BulletForce);
Magaz = Magaz -1;

}
if (input.GetKeyDown (KeyCode.R)) {
Magaz = 15;

}
}
}
Голосование за лучший ответ
Улик Додиков Оракул (85275) 2 месяца назад
Во-первых, тип данных `Int` должен быть написан как `int` с маленькой буквы. Во-вторых, `{` используется вместо `(` в методе `Update`. В-третьих, `input` должно быть `Input` с большой буквы, и `Magazin` должно быть `Magaz`. Вот исправленная часть:
 public int BulletForce = 5000;  
public int Magaz = 15;

void Update () {
if (Input.GetMouseButtonDown(0) && Magaz > 0) {
Transform BulletInstance = Instantiate(bullet, GameObject.Find("spawn").transform.position, Quaternion.identity);
BulletInstance.GetComponent().AddForce(transform.forward * BulletForce);
Magaz -= 1;
}
if (Input.GetKeyDown(KeyCode.R)) {
Magaz = 15;
}
}


Исправь эти моменты, и твой скрипт должен заработать как надо!
Женя МироновУченик (105) 2 месяца назад
спасибо, но не заработал, хз есть ошибки


public class NewBehaviourScript : MonoBehaviour {

public Transform bullet;
public int BulletForce = 5000;
public int Magaz = 15;

void Update () {
if (Input.GetMouseButtonDown (0) && Magaz > 0) {
Transform BulletInstance = (Transform)Instantiate (bullet, GameObject.find ("spawn").transform.position, Quaternion.identity);
BulletInstance.GetComponent<Rigidbody>().AddForce (transform.forward * BulletForce);
Magaz -=1;

}
if (Input.GetKeyDown (KeyCode.R)) {
Magaz = 15;

}
}
Улик Додиков Оракул (85275) Женя Миронов, Извини за недоразумение ранее. Давай ещё раз проверим. Видим небольшие проблемы с регистром и методами. В Unity C# регистр важен, а также точность в названиях методов и свойств. Вот исправления: - `GameObject.find` должно быть `GameObject.Find` с большой буквы `F`. - `Instantiate` не нужно приводить к типу `(Transform)`, так как он и так возвращает `Transform` при работе с префабами `Transform`. Вот исправленный код: https://pastebin.com/w96yjR0s Проверь, что все имена объектов и переменных точно соответствуют тем, что используются в твоем проекте Unity, особенно `"spawn"`. Если объект с именем `"spawn"` отсутствует в сцене, это также вызовет ошибку.
Похожие вопросы