Это базовый скрипт, с помощью которого вы сможете открывать двери.
Что нам потребуется:
First Person Controller (без него же никуда), можно и на свой контроллер
Две анимации: открытие и закрытие двери (я думаю, вы знаете, как они делаются в юньке)
Тег Door, который будем применять к нашей двери
Ну и собственно сама дверь
Следующий C# скрипт прикрепляем к игроку:
using UnityEngine;
using System.Collections;
public class OpenDoor : MonoBehaviour {
private bool guiShow = false;
public bool isOpen = false;
public GameObject door;
public int rayLength = 10;
void Update() {
RaycastHit hit;
Vector3 fwd = transform.TransformDirection(Vector3.forward);
if(Physics.Raycast(transform.position, fwd, out hit, rayLength)) {
if(hit.collider.gameObject.tag == "Door") {
guiShow = true;
if(Input.GetKeyDown("e") && isOpen == false) {
//вместо door_open пишете название своей анимации открытия двери
door.animation.Play("door_open");
isOpen = true;
guiShow = false;
} else if(Input.GetKeyDown("e") && isOpen == true) {
//вместо door_close пишем название своей анимации закрытия двери
door.animation.Play("door_close");
isOpen = false;
guiShow = false;
}
}
} else
guiShow = false;
}
void OnGUI() {
if(guiShow == true && isOpen == false)
GUI.Box(new Rect(Screen.width/2, Screen.height/2, 200, 25), "Press 'E' to open/close the door");
}
} Mrs Note: после добавления двери на сцену выберите ее, затем в верхнем меню нажмите Component | Miscellaneous | Animation. В компоненте Animation этой самой двери отключите Play Automatically. Так же, в этом компоненте разверните список Animations и в поле Size введите цифру 2. В поля Element 0 и Element 1 перетащите анимации двери (это для тех кто не знает).