Error cs0117 input does not contain a definition for get key

Пожалуйста, помогите исправить ошибку Assetsscript2.cs(11,19): error CS0117: 'Input' does not contain a definition for 'Getkey' в коде, который на картинке.

Вот код

Пожалуйста, помогите исправить ошибку

Assetsscript2.cs(11,19): error CS0117: ‘Input’ does not contain a
definition for ‘Getkey’

в коде, который на картинке.

alexsteeel's user avatar

задан 11 дек 2021 в 17:35

Максим Сучков's user avatar

3

2 ответа

Все очень просто: GetKey — функция состоящая из 2х слов, каждое слово в функции пишется с большой буквы.

ответ дан 12 дек 2021 в 8:04

GetKey пишется с двумя большими буквами, поэтому и ошибка

ответ дан 13 дек 2021 в 0:34

YuraSuper2048's user avatar

По туториалу собираю Tower Defence на Unity для себя и на моменте создания скрипта для башен получаю ошибки CS0117 и CS0122.
Туториал супер наглядный, там просто пишется код и дополнительно объясняется что к чему.
По итогу его написания у человека все работает, у меня ошибки.
Дословно выглядят они так:

1) AssetsScriptsTower.cs(26,41): error CS0117: ‘Enemies’ does not contain a definition for ‘enemies’

2) AssetsScriptsTower.cs(51,21): error CS0122: ‘Enemy.takeDamage(float)’ is inaccessible due to its protection level

Сам Код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Tower : MonoBehaviour
{
   [SerializeField] private float range;
   [SerializeField] private float damage;
   [SerializeField] private float timeBetweenShots; // Time in seconds between shots

    private float nextTimeToShoot;

    private GameObject currentTarget;

    private void Start()
    {
        nextTimeToShoot = Time.time;
    }

    private void updateNearestEnemy()
    {
    GameObject currentNearestEnemy = null;

    float distance = Mathf.Infinity;

    foreach(GameObject enemy in Enemies.enemies)
        {
            float _distance = (transform.position - enemy.transform.position).magnitude;

            if (_distance < distance)
            {
                distance = _distance;
                currentNearestEnemy = enemy;
            }
        }

    if (distance <= range)
        {
            currentTarget = currentNearestEnemy;
        }
    else
        {
            currentTarget = null;
        }
    }

    private void shoot()
    {
        Enemy enemyScript = currentTarget.GetComponent<Enemy>();

        enemyScript.takeDamage(damage);
    }

    private void Update()
    {
        updateNearestEnemy();

        if (Time.time >= nextTimeToShoot)
        {
            if (currentTarget != null)
            {
                shoot();
                nextTimeToShoot = Time.time + timeBetweenShots;
            }
        }
    }
}

C# Compiler Error

CS0117 – ‘type’ does not contain a definition for ‘identifier’

Reason for the Error

This error can be seen when you are trying to reference an identifier that does not exist for that type. An example of this when you are trying to access a member using base. where the identifier doesnot exist in the base class.

For example, the below C# code snippet results with the CS0117 error because the the identifier Field1 is accesses using base.Field1 but it doesnot exist in the base class “Class1”.

namespace DeveloperPublishNamespace
{
    public class Class1
    {

    }
    public class Class2 : Class1
    {
        public Class2()
        {
            base.Field1 = 1;
        }
    }
    public class DeveloperPublish
    {
        public static void Main()
        {
            
        }
    }
}

Error CS0117 ‘Class1’ does not contain a definition for ‘Field1’ ConsoleApp1 C:UsersSenthilsourcereposConsoleApp1ConsoleApp1Program.cs 11 Active

C# Error CS0117 – 'type' does not contain a definition for 'identifier'

Solution

To fix the error code CS0117, remove the references that you are trying to make which is not defined in the base class.

I’m a beginner, but I’m thinking of making a 2D shooter.
It worked correctly until then, but when I incorporated a command to push the button of my ammunition, I threw an error.

I investigated variously, but I am not sure how to solve my problem, so I am in trouble.
Please lend me your wisdom.

error CS0117:'KeyCode' does not contain a definition for'z'

Applicable source code

public class testP: MonoBehaviour
{
    public Transform firing position;// connection with bullet
    void Update()
    {
        float x = Input.GetAxis("Horizontal");
        float y = Input.GetAxis("Vertical");
        transform.position += new Vector3(x, y, 0) * Time.deltaTime * 4f;
        if (Input.GetKeyDown(KeyCode.z))
        {
            Debug.Log("z");
        }
    }
}

What I tried

I typed it while checking each one, and tried to google the error message.
I carefully checked the commands, including capital letters, so I don’t think it’s wrong.
I changed to Space because I thought that the z key itself was useless, but this was the same.

if (Input.GetKeyDown(KeyCode.z)) {Debug.Log(«z»);}

I was able to play it just before I typed it in, and when I erased it, I confirmed that I was able to play it again.
There is no doubt that this is the cause…

Supplementary information (FW/tool ​​version, etc.)

2020.1.0f1

Содержание

  1. Как исправить ошибки CS0117 и CS0122?
  2. Ошибка CS0117 в Unity.
  3. Ошибка CS0117 в Unity.

Как исправить ошибки CS0117 и CS0122?

По туториалу собираю Tower Defence на Unity для себя и на моменте создания скрипта для башен получаю ошибки CS0117 и CS0122.
Туториал супер наглядный, там просто пишется код и дополнительно объясняется что к чему.
По итогу его написания у человека все работает, у меня ошибки.
Дословно выглядят они так:

1) AssetsScriptsTower.cs(26,41): error CS0117: ‘Enemies’ does not contain a definition for ‘enemies’

2) AssetsScriptsTower.cs(51,21): error CS0122: ‘Enemy.takeDamage(float)’ is inaccessible due to its protection level

  • Вопрос задан 13 мая 2022
  • 166 просмотров

Простой 1 комментарий

1 — у тебя в классе Enemies нет члена enemies. Возможно его нет совсем, а возможно у тебя опечатка.
2 — у тебя в классе Enemy есть метод takeDamage, но он не публичный

PS: На будущее:
— отмечай комментарием, на какой именно строке сработала ошибка
— не забывай заворачивать код в тег — это сильно упростит чтение для тех, кто попробует решить твой вопрос
— перед тем как задавать вопрос — попробуй загуглить в чём суть ошибки, и попробуй сам решить (CS0117, CS0122)
— перед тем как начинать писать на юнити, лучше всё-таки хоть самые основы C# изучить. Тут как в математике — без понимания простых вещей, ты гарантированно не сможешь понять сложные вещи.

Источник

Ошибка CS0117 в Unity.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class движение : MonoBehaviour
<
public float speed;
public float jumpForce;
public float moveInput;

public Joystick joystick;

private Rigidbody2D rb;

private bool facingRight = true;

private bool isGrounded;
public Transform feetPos;
public float checkRadius;
public LayerMask whatIsGround;

private void Start()
<
rb = GetComponent ();
>

private void FixedUpdate()
<
moveInput = joystick.Horizontal;
rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
if(facingRight == false && moveInput > 0)
<
Flip();
>
else if(facingRight == true && moveInput = .5f)
<
rb.velocity = Vector2.up * jumpForce;
>
>

void OnCollisionEnter2D(Collision2D shit)
<
if (shit.gameObject.tag == «враг»)
<
ReloadFuckingLevel ();
>
>

void ReloadFuckingLevel()
<
Application.LoadLevel (Application.loadLevel); //здесь ошибка
>

void Flip()
<
facingRight = !facingRight;
Vector3 Scaler = transform.localScale;
Scaler.x *= -1;
transform.localScale = Scaler;
>
>

cs(63,44): error CS0117: ‘Application’ does not contain a definition for ‘loadLevel’ это целиком ошибка. Помогите пожалуйста.

Источник

Ошибка CS0117 в Unity.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class движение : MonoBehaviour
<
public float speed;
public float jumpForce;
public float moveInput;

public Joystick joystick;

private Rigidbody2D rb;

private bool facingRight = true;

private bool isGrounded;
public Transform feetPos;
public float checkRadius;
public LayerMask whatIsGround;

private void Start()
<
rb = GetComponent ();
>

private void FixedUpdate()
<
moveInput = joystick.Horizontal;
rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
if(facingRight == false && moveInput > 0)
<
Flip();
>
else if(facingRight == true && moveInput = .5f)
<
rb.velocity = Vector2.up * jumpForce;
>
>

void OnCollisionEnter2D(Collision2D shit)
<
if (shit.gameObject.tag == «враг»)
<
ReloadFuckingLevel ();
>
>

void ReloadFuckingLevel()
<
Application.LoadLevel (Application.loadLevel); //здесь ошибка
>

void Flip()
<
facingRight = !facingRight;
Vector3 Scaler = transform.localScale;
Scaler.x *= -1;
transform.localScale = Scaler;
>
>

cs(63,44): error CS0117: ‘Application’ does not contain a definition for ‘loadLevel’ это целиком ошибка. Помогите пожалуйста.

Источник

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

easycg opened this issue

Oct 29, 2019

· 3 comments

Comments

@easycg

Hi!

I’ve just installed the plugin and I get an error:

Assets/GooglePlayGames/Editor/GPGSUtil.cs(452,57): error CS0117: 'BuildPipeline' does not contain a definition for 'GetPlaybackEngineDirectory'

I’ve looked for error but I haven’t found anything. It’s a known error and it will be solved in the next update? Can someone help me with this issue, please?

Thanks!

@mukhinid

Hi! It’s looked like you’re using Unity 2018.x version. This error already mentioned in issue #2766. I’ve created PR #2768, that fixes it, but while it isn’t merged. So far you can use older plugin version (e.g. v10.04) or go to Assets/GooglePlayGames/Editor/GPGSUtil.cs file and wrap strings from 448 to 461 into #if UNITY_2019 macros.

@mukhinid

@easycg

Понравилась статья? Поделить с друзьями:
  • Error cs0117 debug does not contain a definition for log
  • Error cs0117 console не содержит определение для readline
  • Error cs0117 console does not contain a definition for writeline
  • Error cs0117 camera does not contain a definition for main
  • Error cs0116 как исправить