Koddaki hata nedir?

23Oesadn

Picopat
Katılım
3 Kasım 2024
Mesajlar
221
Daha fazla  
Cinsiyet
Erkek
Merhaba, ben şuan sadece unityi daha iyi kavramak için bir proje yapıyorum ve projemde hiç denemediğim bir şeyi yaptım. Bu şey de alana girince bütün karakter animasyonlarının durup hepsinin bana bakması ama bunu 50 kere farklı şekilde yazmama rağmen olmadı yapamadım.
Adımlarım:
Hierarchy'de sağ tık creat empty yaptım ve içine bu kodu yazdım.
C#:
using UnityEngine;
using System.Collections;

public class DüğünDurma : MonoBehaviour
{
    public Animator[] animators;
    public float rotationSpeed = 5f;

    void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            foreach (Animator anim in animators)
            {
                anim.speed = 0;

           
            LookAtPlayer();
        }
    }

    void LookAtPlayer()
    {
        Transform playerTransform = GameObject.FindWithTag("Player").transform;

        foreach (Animator anim in animators)
        {
            StartCoroutine(RotateToFace(anim.transform, playerTransform));
        }
    }

    IEnumerator RotateToFace(Transform character, Transform player)
    {
       
        while (Quaternion.Angle(character.rotation, player.rotation) > 0.1f)
        {
            character.rotation = Quaternion.Slerp(character.rotation, player.rotation, rotationSpeed * Time.deltaTime);
            yield return null;
        }
    }

    void OnTriggerExit(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            foreach (Animator anim in animators)
            {
                anim.speed = 1;
            }
        }
    }
}
Sonra box collider ekleyip Is Trigger'ı işaretledim ve konumunu ayarladım.
İlk başta hiç biri durmadı ama animasyonlarımın loop timesini kapattığımda birinin durduğunu diğerinin durmadığını gördüm. Ne yapabilirim hiç bilmiyorum.
 
Yazdığınız kodda animasyonları durdurmuyorsunuz. Idle animasyonu oluşturup animator.Settriger("idle") kodunu on trigger enter icine yazmanız gerekiyor
 
Süslü parantez olmuyor mu kodlarda.


Kanka yapay zeka cevapları olmamalı forumda.
Lütfen düzelt.
 

Bu olmadı ne yazık ki.
 
Süslü parantez olmuyor mu kodlarda.

Kanka yapay zeka cevapları olmamalı forumda.
Lütfen düzelt.

Adam yardım etmeye çalışmış, okuduğum Technopat kurallarında böyle şeyler yoktu.
 
Adam yardım etmeye çalışmış, okuduğum Technopat kurallarında böyle şeyler yoktu.
public class DüğünDurma : MonoBehaviour
{
public Animator[] animators;
public float rotationSpeed = 5f;

void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
foreach (Animator anim in animators)
{
anim.speed = 0;
}

LookAtPlayer();
}
}

void LookAtPlayer()
{
Transform playerTransform = GameObject.FindWithTag("Player").transform;

foreach (Animator anim in animators)
{
StartCoroutine(RotateToFace(anim.transform, playerTransform));
}
}

IEnumerator RotateToFace(Transform character, Transform player)
{
while (Quaternion.Angle(character.rotation, player.rotation) > 0.1f)
{
character.rotation = Quaternion.Slerp(character.rotation, player.rotation, rotationSpeed * Time.deltaTime);
yield return null;
}
}

void OnTriggerExit(Collider other)
{
if (other.CompareTag("Player"))
{
foreach (Animator anim in animators)
{
anim.speed = 1;
}
}
}
}
 

Assets\Çakmaduvar.cs(31,5): error CS0246: The type or namespace name 'ıenumerator' could not be found (are you missing a using directive or an Assembly reference?)
Böyle hata var.
 
Assets\Çakmaduvar.cs(31,5): error CS0246: The type or namespace name 'ıenumerator' could not be found (are you missing a using directive or an Assembly reference?)
Böyle hata var.

Büyük ı ile başlamak zorunda sanırım onu düzeltip dener misin?
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…