Показать сообщение отдельно
Старый 29.01.2013, 23:43   #1200
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Вопросы от новичка

Сообщение от seaman Посмотреть сообщение
Зачем в while это? У Вас что анимация не зацикленная?
Дело в том, что стандартная анимация в Character Controller не работает. Пришлось свой скрипт писать.
#pragma strict

var runclip : AnimationClip;
var idleclip : AnimationClip;
var jumpclip : AnimationClip;
var fight1clip : AnimationClip;

var spawnGO : GameObject;

function Start () 
{
	animation.AddClip(runclip, "run");
	animation.AddClip(idleclip, "idle");
	animation.AddClip(jumpclip, "jump");
	animation.AddClip(fight1clip, "fight1");

}

function Update () 
{
	var controller : CharacterController = GetComponent(CharacterController);
	if(Input.GetAxis("Vertical") || Input.GetAxis("Horizontal"))
	{
		if(controller.isGrounded)
		{
			animation.CrossFade("run");
		}
	}
	if(!Input.GetAxis("Vertical") && !Input.GetAxis("Horizontal") && !Input.GetKey(KeyCode.LeftControl))
	{
		if(controller.isGrounded)
		{
			animation.CrossFade("idle");
		}
	}
	while(controller.isGrounded != controller.isGrounded)
	{
		animation.CrossFade("jump");
	}

	if(Input.GetKey(KeyCode.LeftControl))
	{
		if(!animation.IsPlaying("jump") && !animation.IsPlaying("run"))
		{
			animation["fight1"].speed = 8;
			animation.CrossFade("fight1");
		}
	}
	if(transform.position.y < -10)
	{
		var ygo = spawnGO.transform.position.y;
		var xgo = spawnGO.transform.position.x;
		var zgo = spawnGO.transform.position.z;
		transform.position = Vector3(xgo,ygo,zgo);
	}
}
Такие вот дела...
(Offline)
 
Ответить с цитированием