AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / 问题

Perguntas[unity-game-engine](coding)

Martin Hope
ProjectKV
Asked: 2025-04-15 10:23:28 +0800 CST

Como obter a largura exata do texto a partir do estouro horizontal: wrap?

  • 5

No Unity, tentei obter um tamanho de componente de texto, não TMP, que tenha estouro horizontal: wrap e estouro vertical: overflow.

Quando o texto está fora da largura do retângulo e uma nova linha é adicionada, text.preferredHeight funciona corretamente. Ele retorna a altura da linha.

Mas text.preferredWidth retorna um valor errado. Funciona como se o estouro horizontal fosse apenas um estouro, não importa o que seja.

Quero obter um valor em que as linhas quebradas sejam aplicadas.

chat.text = 'looooooooooooooooooooooong word'; //text is wrapped. Extra line is created
Debug.Log(chat.perferredWidth); // returns wrong value. Extra line is not applied
Debug.Log(chat.perferredHeight); // returns correct value.
unity-game-engine
  • 1 respostas
  • 33 Views
Martin Hope
Derek Thurn
Asked: 2025-04-09 07:54:50 +0800 CST

É possível controlar a resolução na qual o Unity executa testes de unidade no modo de reprodução?

  • 6

É possível escrever testes unitários para Unity usando o Unity Test Runner. Gostaria de invocar esses testes na linha de comando para poder executá-los como parte do meu fluxo de trabalho do Git de forma automatizada.

Você pode executar testes na linha de comando via

Unity.exe -runTests -batchmode -projectPath ~/path -testPlatform PlayMode

Isso funciona bem, porém o Unity sempre executa meus testes com uma resolução de 640 x 480, o que não é realista. Uma grande motivação para eu fazer esses testes também é testar a correção em diferentes resoluções de destino, o que parece não ser possível.

unity-game-engine
  • 2 respostas
  • 49 Views
Martin Hope
Mulankunas
Asked: 2025-03-31 11:50:25 +0800 CST

aumentando rapidamente a gravidade fazendo com que o salto não funcione

  • 5

Estou fazendo um clone de pássaro voador para praticar e, ao fazer o recurso de salto, estou tendo problemas porque no começo o salto funciona, mas então a gravidade fica tão forte que, mesmo se eu ainda estiver me movendo para cima, pular se torna cada vez mais difícil (mesmo em 0,25 ou adicionando uma força de 5k na coordenada y)

pesquisei algumas soluções e descobri que desligar a gravidade quando o botão de pular é pressionado, mas não acho que funcione bem para RigidBody2D e outra solução que tentei é aumentar a força ascendente, mas isso só funciona como uma solução de curto prazo, não sei onde colocar o código, então estou colocando aqui

using UnityEngine;

public class PlayerJump : MonoBehaviour
{
    public Rigidbody2D rb;
    public float jump = 10f;
    public float Flyspeed = 10f;

    // Update is called once per frame
   void start()
    {
        rb = GetComponent<Rigidbody2D>();
    }
   
   
    void Update()
    {
       rb.AddForce(new Vector2(Flyspeed * Time.deltaTime, 0));
       
        if (Input.GetKeyDown("w"))
        {
           rb.AddForce(new Vector2(0, jump * Time.deltaTime));
           rb.useGravity = false;
        }
        else
        rb.useGravity = true;
    }
}
unity-game-engine
  • 1 respostas
  • 26 Views
Martin Hope
Alejandro Velasquez
Asked: 2025-03-04 03:20:41 +0800 CST

Variáveis ​​públicas dentro da classe namespace não estão aparecendo no inspetor de unidade

  • 5

estou tentando acessar as variáveis ​​atk, def, hp, spd e mana no inspetor para adicionar estatísticas a um prefab, mas elas não estão aparecendo no inspetor por algum motivo quando anexo o script ao gameobject. por favor ajude

using System;
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine.UIElements;

namespace Stats
{

    public class Enemy : MonoBehaviour
    {
        public static int atk;
        public static int def;
        public static int hp;
        public static int spd;
        public static int mana;
        public static UnityEngine.UI.Image enemyImage;

        public static GameObject[] infectedLvlOne;
        public static GameObject[] infectedLvlTwo;
        public static GameObject[] infectedLvlThree;
        public static GameObject[] infectedLvlFour;
        public static GameObject[] infectedLvlFive;
        public static GameObject[] infectedLvlSix;
        public static GameObject[] infectedLvlSeven;
        public static GameObject[] infectedLvlEight;
        public static GameObject[] infections;

        private static int baseAtk;
        private static int baseDef;
        private static int baseHp;
        private static int baseSpd;
        private static int baseMana;
        private static int lvl;


        static void SetBaseInfectionStats()
        {
            atk = baseAtk * lvl;
            def = baseDef * lvl;
            hp = baseHp * lvl;
            spd = baseSpd * lvl;
            mana = baseMana * lvl;
        }
    }
}

insira a descrição da imagem aqui

Eu tentei adicionar serializável de sistema à classe e serializável de campo às variáveis ​​que preciso, mas mesmo assim não funciona. As variáveis ​​são públicas, então elas devem aparecer.

unity-game-engine
  • 1 respostas
  • 21 Views
Martin Hope
pheedsta
Asked: 2025-01-06 13:15:37 +0800 CST

Como calculo um vetor na borda de um círculo no Unity para um CharacterController?

  • 5

No Unity, preciso mover um CharacterController de v2 para v3. Tenho as seguintes informações: o ponto central do círculo (v1); a posição atual do personagem na parte externa do círculo (v2); o ângulo (a). Como calculo o vetor de movimento para o CharacterController para que ele se mova de v2 para v3?

Encontrando v3

unity-game-engine
  • 1 respostas
  • 27 Views
Martin Hope
soleil
Asked: 2024-12-29 14:10:14 +0800 CST

Animação de texto de pontuação pré-fabricada no Unity

  • 5

Criei um prefab simples chamado ScorePopup. Ele tem um TextMeshProcomponente. Ele também tem um Animatorque move o texto para cima em 2 unidades do mundo e desbota a cor em 1 segundo. Então, no animador, ele tem

ScorePopup: Text Mesh Pro.Font Color - goes from 1 to 0 over 1 second.
ScorePopup: Anchored Position
  Anchored Position.x (stays at 0)
  Anchored Position.y - goes from 0 to 2 over 1 second.

Agora, imagine um jogo em que um inimigo está se movendo da direita para a esquerda. Ele é atingido por uma bala. Quero instanciar este ScorePopup na posição em que o inimigo foi atingido.

Tentei instanciá-lo no meu script de jogo:

GameObject go = Instantiate(scorePopupPrefab, enemy.transform.position, Quaternion.identity);
go.GetComponent<TMP_Text>().text = score.ToString();

O problema é que o ScorePopup não aparece na posição do inimigo - ele aparece em 0,0 na minha cena, provavelmente por causa dos Anchored Positionvalores na animação.

Então tentei instanciar o ScorePopup no meu script inimigo:

GameObject go = Instantiate(scorePopupPrefab, transform.position, Quaternion.identity, transform);

Isso coloca corretamente o scorePopup onde o inimigo está. No entanto, o scorePopup se move para a esquerda com o inimigo. Quero que o score popup apareça na posição de ataque no espaço de cena/mundo e faça sua animação lá. Ele não deve se mover com o inimigo.

Qual é a solução aqui? Como posso instanciar um prefab na minha cena em uma posição designada se o prefab tem uma animação de posição interna? Isso é para o cenário muito comum em que você vê uma pontuação flutuar para cima quando um jogador ganha pontos ao atacar ou obter um objeto.

Editar: O prefab de texto não tem uma tela. Ele foi criado como um objeto vazio e tem um TMPRo - Textcomponente (e um Animator) adicionado a ele para exibir o texto.

Eu também tentei isso:

public class ScorePopup : MonoBehaviour
{
    private Animator animator;

    void Awake()
    {
        animator = GetComponent<Animator>();
        if (animator != null)
        {
            animator.enabled = false;
            StartCoroutine(EnableAnimatorAfterDelay(0.1f));
        }
    }

    IEnumerator EnableAnimatorAfterDelay(float delay)
    {
        yield return new WaitForSeconds(delay);
        animator.enabled = true;
    }
}

Ele aparece brevemente na posição correta, mas depois muda para 0,0 quando a animação é ativada :(

unity-game-engine
  • 2 respostas
  • 32 Views
Martin Hope
Meeth
Asked: 2024-12-25 07:17:11 +0800 CST

Unity ECS - Como modificar o elemento de um DynamicBuffer

  • 5

Eu tenho este pedaço de código:

foreach (DynamicBuffer<Items> items in SystemAPI.Query<DynamicBuffer<Items>>())
{
   ...
}

Estou tentando modificar um elemento específico de items. É assim que estou tentando fazer isso: items[3] = modifiedItem;

Mas eu recebo o erro

Não é possível modificar membros de 'itens' porque é uma 'variável de iteração foreach'.

Como posso modificar os elementos de items?

unity-game-engine
  • 1 respostas
  • 24 Views
Martin Hope
JMAS
Asked: 2024-12-06 03:36:33 +0800 CST

Unity 6 - Clipes de animação fazendo com que o jogador não consiga se mover

  • 5

Fiz alguns clipes de animação extras e a mera existência deles faz com que o player não consiga se mover. Não sei por que, quando excluo os novos clipes de animação, consigo mover o player novamente. Tentei desfazer o código para ver se era o código, mas não era.

unity-game-engine
  • 3 respostas
  • 36 Views
Martin Hope
soleil
Asked: 2024-11-10 00:14:47 +0800 CST

Por que meu objeto de jogo não se move quando sua transformação muda?

  • 6

Estou tentando mover suavemente um objeto do ponto a para o ponto b:

    Instantiate(cat, OffScreenLeft(), Quaternion.identity);
    Debug.Log("start position: " + OffScreenLeft());
    Debug.Log("end position: " + InPosition());

    StartCoroutine(MoveFromTo(cat.transform, OffScreenLeft(), InPosition(), 3f));
    
    IEnumerator MoveFromTo(Transform objectToMove, Vector3 a, Vector3 b, float speed) {
            float step = (speed / (a - b).magnitude) * Time.fixedDeltaTime;
            float t = 0;
            while (t <= 1.0f) {
                t += step; // Goes from 0 to 1, incrementing by step each time
                objectToMove.position = Vector3.Lerp(a, b, t); // Move objectToMove closer to b
                yield return new WaitForFixedUpdate();
            }
            objectToMove.position = b;
            Debug.Log("move complete cat: " + cat.transform.position); 
        }

Aqui está a saída de depuração:

    start position: (-20.34, 4.33)
    end position: (-8.67, 4.33)
    move complete cat: (-8.67, 4.33, 0.00)

A saída de depuração mostra que o gato deveria ter se movido. Mas ele ainda aparece fora da tela, deixado em sua posição original. O que estou esquecendo?

unity-game-engine
  • 1 respostas
  • 34 Views
Martin Hope
Roland
Asked: 2024-11-06 01:13:02 +0800 CST

Unity3D - Colisão não entrando / Detectando

  • 5

Eu tenho um objeto Meteor e um Player. Ambos com RigidBody2d e Colliders2d. O colisor de meteoros tem "Is Trigger" marcado e tem um script com OnCollisionEnter2D() implementado, mas a colisão não está funcionando quando o meteoro atinge o player:

private void OnCollisionEnter2D(Collision2D other) {
    Debug.Log(other.gameObject.tag);        
    Destroy(other.gameObject);        
}

}

-Meteoro-

insira a descrição da imagem aqui

-Jogador-

insira a descrição da imagem aqui

Visualizar

insira a descrição da imagem aqui

unity-game-engine
  • 1 respostas
  • 13 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve