Unity'de sol tık ile açılabilen ve kapanabilen bir kapı yapmak için, öncelikle kapı objesi, bir animasyon ve bir script oluşturmanız gerekmektedir. İşte adım adım yapılması gerekenler:
Kapı objesi oluşturun: Unity içinde bir kapı modeli oluşturun veya dışarıdan bir model içe aktarın. Kapı objesini, istediğiniz konumda yerleştirin.
Kapı animasyonu oluşturun: Kapının açılma ve kapanma animasyonlarını oluşturun. Unity'de bunu Animation Window ve Animator Window kullanarak yapabilirsiniz. İki animasyon klipleri oluşturun: "Open" ve "Close". Open animasyon klibinde kapıyı açık konumuna getirin ve Close animasyon klibinde kapıyı kapalı konumuna getirin.
Kapıya bir script ekleyin: Unity'de yeni bir C# scripti oluşturun ve adını "DoorController" olarak değiştirin. Bu scripti kapı objesine sürükleyerek ekleyin. DoorController scriptini düzenleyin: DoorController scriptini açarak aşağıdaki kodları ekleyin: ———————————— using System.Collections; using System.Collections.Generic; using UnityEngine;
public class DoorController : MonoBehaviour { private Animator animator; private bool isOpen;
Kapı objesi oluşturun:
Unity içinde bir kapı modeli oluşturun veya dışarıdan bir model içe aktarın. Kapı objesini, istediğiniz konumda yerleştirin.
Kapı animasyonu oluşturun:
Kapının açılma ve kapanma animasyonlarını oluşturun. Unity'de bunu Animation Window ve Animator Window kullanarak yapabilirsiniz. İki animasyon klipleri oluşturun: "Open" ve "Close". Open animasyon klibinde kapıyı açık konumuna getirin ve Close animasyon klibinde kapıyı kapalı konumuna getirin.
Kapıya bir script ekleyin:
Unity'de yeni bir C# scripti oluşturun ve adını "DoorController" olarak değiştirin. Bu scripti kapı objesine sürükleyerek ekleyin.
DoorController scriptini düzenleyin:
DoorController scriptini açarak aşağıdaki kodları ekleyin:
————————————
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DoorController : MonoBehaviour
{
private Animator animator;
private bool isOpen;
void Start()
{
animator = GetComponent<Animator>();
isOpen = false;
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
if (hit.transform.gameObject == this.gameObject)
{
ToggleDoor();
}
}
}
}
void ToggleDoor()
{
if (isOpen)
{
animator.Play("Close");
}
else
{
animator.Play("Open");
}
isOpen = !isOpen;
}
}
< Bu ileti iOS uygulamasından atıldı > Bu mesaja 1 cevap geldi. Cevapları Gizle
< Bu ileti Android uygulamasından atıldı > Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesajda bahsedilenler: @Can45i
Bu mesajda bahsedilenler: @sriiouss