Результаты поиска
|
|
Zilius | Дата: Воскресенье, 25 Октября 2015, 16:32 | Сообщение # 1 | Тема: Движение персонажа в сторону мышки |
был не раз
Сейчас нет на сайте
| Здравствуйте, подскажите скрипт движение персонажа в сторону куда направлен курсор мыши есть ли готовый скрипт на Unity 5?
|
|
| |
Zilius | Дата: Среда, 21 Октября 2015, 18:22 | Сообщение # 2 | Тема: Перевод скрипта |
был не раз
Сейчас нет на сайте
| Цитата FlyOfFly ( ) Держи Спасибо
|
|
| |
Zilius | Дата: Вторник, 20 Октября 2015, 17:06 | Сообщение # 3 | Тема: Перевод скрипта |
был не раз
Сейчас нет на сайте
| Всем привет,помогите перевести скрипт с 4 юньки на 5тую версию Ошибка :
Assets/Project_OneGame/Player/AnimatePlayer.cs(9,9): error CS0619: `UnityEngine.Component.animation' is obsolete: `Property animation has been deprecated. Use GetComponent<Animation>() instead. (UnityUpgradable)'
Сам скрипт :
Код using UnityEngine; using System.Collections;
public class AnimatePlayer : MonoBehaviour { public void Start() { // Устанавливаем все клипы анимации в режим цикла animation.wrapMode = WrapMode.Loop; // Кроме следующих animation["Attack01"].wrapMode = WrapMode.Once; animation["jump"].wrapMode = WrapMode.Once; animation["Skill"].wrapMode = WrapMode.Once; //У них одиночное выполнение
//Останавливаем выполнение анимаций. animation.Stop(); }
public void Update() { // На основе нажатой клавиши выполняем анимацию if (movePlayer.IsDrawWeapon == false) //Если оружие не вытащено { if (Input.GetAxis("Vertical") > 0.0f) //Проверяем на изминениея позиции персонажа повертикали, если да { if (movePlayer.speed == movePlayer._speed * 2) //Проверяем скорость Передвижения персонажа, { animation.CrossFade("Run00"); //Если зажата клавиша shift, значит грузим анимацию бега } else { animation.CrossFade("Walk"); //В противном случаее ходьбу } } else if (Input.GetAxis("Vertical") < 0.0f) //Далее все по анологии { if (movePlayer.speed == movePlayer._speed * 2) { animation.CrossFade("B_Run00"); //бег назад } else { animation.CrossFade("B_Walk"); //ходьба назад } } else if (Input.GetAxis("Horizontal") > 0.0f) { if (movePlayer.speed == movePlayer._speed * 2) { animation.CrossFade("R_Run00"); //бег в право } else { animation.CrossFade("R_Walk"); //Шагание в право }
} else if (Input.GetAxis("Horizontal") < 0.0f) { if (movePlayer.speed == movePlayer._speed * 2) { animation.CrossFade("L_Run00"); //лево } else { animation.CrossFade("L_Walk"); //лево } } else if (Input.GetKey(KeyCode.Space)) //если сделан прыжок {
animation.Play("Jump_NoBlade"); //Включаем анимацию прыжка } else { animation.CrossFade("Idle"); //просто стоим } } else if (movePlayer.IsDrawWeapon == true) //если оружие вытащено { if (Input.GetAxis("Vertical") > 0.0f) { animation.CrossFade("Run"); //бег в перед } else if (Input.GetAxis("Vertical") < 0.0f) { animation.CrossFade("B_Run"); //назад } else if (Input.GetAxis("Horizontal") > 0.0f) { animation.CrossFade("R_Run"); //в право } else if (Input.GetAxis("Horizontal") < 0.0f) { animation.CrossFade("L_Run"); //в лево } else if (Input.GetKey(KeyCode.Space)) { animation.Play("jump"); //Прыжок } else { animation.CrossFade("AttackStandy"); //просто стоим }
//Анимация атаки if (Input.GetMouseButton(0)) //Если нажать маус 1 animation.CrossFade("Attack01"); //Включаем анимацию атаки if (Input.GetMouseButton(1)) //Если нажать маус 2 animation.CrossFade("Skill"); //Включаем анимацию скила } } }
|
|
| |
Zilius | Дата: Воскресенье, 18 Октября 2015, 00:05 | Сообщение # 4 | Тема: Ошибки в скрипте |
был не раз
Сейчас нет на сайте
| Цитата YellowAfterlife ( ) Цитата Zilius () Код codeusing UnityEngine;
Возможно, этот префикс "code" был скопирован случайно и является лишним. Да с этим тупанул, появилась другая ошибка
|
|
| |
Zilius | Дата: Суббота, 17 Октября 2015, 22:38 | Сообщение # 5 | Тема: Ошибки в скрипте |
был не раз
Сейчас нет на сайте
| Всем привет, юнька выдает ошибку: error CS1061: Type `UnityEngine.Component' does not contain a definition for `freezeRotation' and no extension method `freezeRotation' of type `UnityEngine.Component' could be found (are you missing a using directive or an assembly reference?) Подскажите... как можно это исправить?
Код using UnityEngine; using System.Collections;
public class CamMove : MonoBehaviour { public Transform target; //Объект за которым летаем(Наш персонаж) public float distance = 3.0f; //На каком ратоянии от него public float xSpeed = 125.0f; //Чуствительность по Х public float ySpeed = 50.0f; //Y Чуствительность public float targetHeight = 2.0f; //Высота относительно объекта //Минимальный и максимальный угол поворота Y инче камеру разверет, Дальше у нас будет простая функция для инвертации их в обратные числа public float yMinLimit = -40; public float yMaxLimit = 80; //Максимальное удаление и приближение камеры к персонажу, искорость. public float maxDistance = 10.0f; public float minDistance = 0.5f; public float zoomRote = 90.0f;
private float x = 0.0f; //Угол поворота по Y? private float y = 0.0f; //Уго поворота по X?
[AddComponentMenu("Scripts/Mouse Orbit")] //Добавляем в меню
public void Start() { //переворачивам углы Vector3 angles = transform.eulerAngles; x = angles.y; y = angles.x;
if (rigidbody) rigidbody.freezeRotation = true; //Если камера столкнется с физ.объектомона остановиться }
public void LateUpdate() { if (target) {//Если цель установлена(Персонаж) //Меняем углы согласно положению мыши x += Input.GetAxis("Mouse X") * xSpeed * 0.02f; y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f; //Меняем дистанция до персонажа. distance -= (Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime) * zoomRote * Mathf.Abs(distance); distance = Mathf.Clamp(distance, minDistance, maxDistance);
y = ClampAngle(y, yMinLimit, yMaxLimit); //Вызыв самописной функции для ограничения углов поврот movePlayer.x = x; //Повернуть камеру согласно поченым данным Quaternion rotation = Quaternion.Euler(y, x, 0); transform.rotation = rotation;
//Двигаем камеру и следим за персонажем Vector3 position = rotation * new Vector3(0.0f, targetHeight + 0.5f, -distance) + target.position; transform.position = position;
//Следуйщи код нужен что бы камера не проваливалась по ланшафт RaycastHit hit; Vector3 trueTargetPosition = target.transform.position - new Vector3(0, -targetHeight, 0); if (Physics.Linecast(trueTargetPosition, transform.position, out hit)) { float tempDistance = Vector3.Distance(trueTargetPosition, hit.point) - 0.28f; position = target.position - (rotation * Vector3.forward * tempDistance + new Vector3(0, -targetHeight, 0)); transform.position = position; } }
} //Меняем значения углов public static float ClampAngle(float angle, float min, float max) { if (angle < -360) angle += 360; if (angle > 360) angle -= 360; return Mathf.Clamp(angle, min, max); } }
Сообщение отредактировал Zilius - Воскресенье, 18 Октября 2015, 00:04 |
|
| |
Zilius | Дата: Четверг, 21 Мая 2015, 21:46 | Сообщение # 6 | Тема: GUI интерфейс в скрипте |
был не раз
Сейчас нет на сайте
| Цитата harmoxyne ( ) в OnGUI() просто выводи надпись с CurAmmoCount. Ничего не понял,можно по подробней?)
|
|
| |
Zilius | Дата: Среда, 20 Мая 2015, 23:11 | Сообщение # 7 | Тема: GUI интерфейс в скрипте |
был не раз
Сейчас нет на сайте
| Здравствуйте,помогите в скрипте поставить свой интерфейс о кол-че патронов в обойме Код using UnityEngine; using System.Collections; public class PM : MonoBehaviour { public Transform bullet; //Префаб патрона public GUISkin MySkin; //Ссылка на наш скин public int BulletForce = 5000; //Скорость патрона private int CurAmmoCount = 8; //Текущее кол-во патронов в обойме public int MaxAmmoCount = 8; //Максимальное число патронов в обойме public int CurCatrige = 2; //Текущее число обойм public int MaxCatrige = 3; //Максимальное число обойм (пока не используется) public AudioClip Fire; //Аудиоклип воспроизводящийся во время стрельбы public AudioClip Reload; //Аудиоклип воспроизводящийся во время перезарядки public int AmmoBoxWidth = 200; public int AmmoBoxHeight = 30; // Use this for initialization void Start () { } // Update is called once per frame void Update () { if(Input.GetMouseButtonDown(0)&CurAmmoCount>0) //Если нажата ЛКМ и кол-во патронов больше 0 { Transform BulletInstance = (Transform) Instantiate(bullet, GameObject.Find("spawn_bullet_pistol_01").transform.position, Quaternion.identity); //Генерится префаб патрона в координатах объекта "BulletSpawnPoint" BulletInstance.rigidbody.AddForce(transform.forward * BulletForce); //Сгенерированый патрон отправляется вперед со скоростью "BulletForce" CurAmmoCount = CurAmmoCount - 1; //-1 патрон audio.PlayOneShot(Fire); //проигрываем звук выстрела } if(Input.GetButtonDown("Reload Weapon")&CurCatrige>0) //Если нажата кнопка Reload Weapon { CurCatrige = CurCatrige - 1; //-1 обойма CurAmmoCount = MaxAmmoCount; //Число патронов в обойме = максимальному числу патронов audio.PlayOneShot(Reload); //проигрываем звук перезарядки } } }
|
|
| |