Урок по созданию персонажа в Unity 3D - Форум Игроделов
Пт, 29 Мар 2024, 14:55 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » МАНУАЛЫ И УРОКИ » Урок по созданию персонажа в Unity 3D (Этот урок о персонаже, и его улутшению)
Урок по созданию персонажа в Unity 3D
AIDENДата: Ср, 26 Июн 2013, 16:42 | Сообщение # 1
Нет аватара
 
Сообщений: 59
Награды: 0
Репутация: 56
Статус: Offline
(ПКМ-правая кнопка мыши).

Всем привет!
Это наш 2 урок по созданию FPS на движку Unity 3D.Сегодня мы сконцентрируем внимание на нашем игроку (Player), попытаемся сделать :
-1.Поставить игрока на нашу сцену,
-2.Сделаем ускорение в бегу( при нажатии Shift),
-3.Создать возможность приседать ( при нажатии Ctrl),
-4.Звук ходьбы.
-5. Движение камеры при ходьбе.

1.Начнём с того, что добавим игрока на сцену, для этого : в окне Project откроем папку Standard Assets-> Character Controllers, и вытянем на сцену префаб “First Person Controller”.После того как вы сделали это, вытяните игрока с земли( приблизительно на пол метра), что-бы при запуске игры он не провалился сквозь землю.
Можете запустить игру, проверить всё ли правильно мы сделали.

2.Теперь сделаем ускорение в бегу. Начнём с того , что создадим файл скрипта, для этого : в окошке Project (нажмём ПКМ на пустое место и выберем Create->JavaScript) в окне Project появится файл с JavaScript.Назовём его “ PlayerRun” и приступим к его написанию. Откройте этот скрипт. Запустится программа “Mono Develop”.Удаляем всё что есть сейчас в скрипте, и пишем :

Код

function Start () { CharacterMotor.an = 1; } // Character Motor,при старте игры - скорость ровняется 1.
    function Update() {   
   if (Input.GetKey(KeyCode.LeftShift)) { //Если нажата кнопка Left Shift то…
                   CharacterMotor.an = 1.5; //Скорость возрастает с 1, на 1.5
               } else {   
               if (Input.GetKeyUp (KeyCode.LeftShift)) {  //Если кнопка отпущена, то…
                   CharacterMotor.an = 1; //Скорость снижается с 1.5, на 1
               }   
               }   
   }


Теперь сохраним скрипт нажатием на Ctrl+S, или File->Save в меню “Mono Develop”.
Откроем Unity, и перетащим этот скрипт на нашего игрока (First Person Controller).Вот и всё, теперь протестируйте игру, при нажатии на левый Shift, игрок ускорится на 0.5, при отпускании уменьшится к стандартному.

3.Сделаем возможность приседать. Создадим новый Javascript (так, как было указано выше), и назовём его “CtrlPress”, откройте его, и впишите следующий код :

Код
   
var controller : CharacterController;  //Указываем игрока
      var oldHeight;      
      var newHeight: float;      
      var newPos;     
      var bf : boolean = false;      

      function Start () {      
      controller = GetComponent(CharacterController);    //Находим компонент CharacterController
      oldHeight = controller.height;      
      }      

     function Update() {         
     newPos = new Vector3(transform.position.x, transform.position.y + 0.7f, transform.position.z);     
                if (Input.GetKey(KeyCode.LeftControl)) {     
                    controller.height = newHeight;     
                    bf = true;     
                } else {     
                if (Input.GetKeyUp (KeyCode.LeftControl) && !Physics.Raycast (transform.position, Vector2.up)) {     
                    controller.height = oldHeight;     
                    transform.position = newPos;     
                    bf = false;     
                } else {     
                if (bf == true && !Physics.Raycast (transform.position, Vector2.up)) {     
                controller.height = oldHeight;     
                    transform.position = newPos;     
                    bf = false;     
                }     
                }     
                }     
     }


Сохраним скрипт, и откроем Unity.
Теперь перетащим скрипт “CtrlPress” на нашего игрока. После того как вы перетащите скрипт, нажмите на “First Person Controller” в меню Hierarchy ( чтобы он появился в окошке Inspector), и найдите там наш скрипт, и там где написано ”controller” укажите нашего игрока (перетащив игрока ”First Person Controller” на кружок рядом с ”controller” ) . Проверьте его, запустив игру.При нажатии на кнопку ”левый Ctrl” игрок присядет , при отпускании кнопки игрок встанет.
4.Добавим разнообразия нашему игроку, добавим звук ходьбы. Сначала добавим компонент ( для того чтобы звук воспроизводился ) нажмём на игрока, в меню Unity на вкладку Component->Audio->Audio Sourse( перепроверьте что бы ”First Person Controller” был отмечен в Hierarchy ). Создадим Javascript, и назвём его “PlayerMusicController”, впишем код :

Код
var WalkSound : AudioClip[];
var AudioStepLength = 0.3;

function Awake () {

   PlayStepSounds();   
}

function PlayStepSounds () {
   var controller : CharacterController = GetComponent(CharacterController);

   while (true) {
    if (controller.isGrounded && controller.velocity.magnitude > 0.3) {
     audio.clip = WalkSound[Random.Range(0, WalkSound.length)];
     audio.Play();
     yield WaitForSeconds(AudioStepLength);
    } else {
     yield;
    }
   }
}


Также добавим его к игроку.
В меню Inspector, в нашем скрипте, там где WalkSound->Size выставляем то число звуков, которые будут проигроватся при нажатии на кнопки управления ( для разнообразия, у меня стоит 3 звука ходьбы, и при нажатии кнопок управления, они каждый раз играют по разному ( в том смысле что, 3 разных звука играют поочерёдно ), и получается красивый звук.
Всё, звук готов, теперь перейдём на 5-ю тему.
5.Теперь наконец то сделаем так, что при ходьбе, камера нашего игрока немного передвигалась по оси “Y”(имитируя этим ходьбу ).Создадим скрипт С# (также как и Java Script, только выберем C#), назовём его CameraFPS, откроем его, и впишем код :

Код

using UnityEngine;   

   public class Camera_FPS : MonoBehaviour   
   {   
   public Vector2 rotationLimit; //Limit for the vertical rotation of the camera. X is higher limit, Y is lower limit.   
   public float rotationSpeed = 600.0f; //Vertical rotation speed of the camera   
   public bool invertY = true; //Invert vertical rotation   
   public bool headBobEnabled = true; //Enables/disables head bobbing   
   public Vector2 headBobDistance = new Vector2(0.2f, 0.3f); //The distance the camera travels in the y-axis for the headBobbing effect   
   public float headBobSpeed = 5.0f; //Speed at which the player's head bobs   

   private Vector3 initialLocalPos; //Starting local y-position of camera   
   private float rot; //Stores the rotation value incremented by mouse movement in the y-axis   
   private Transform t; //Reference to the transform component of the game object   

   public void Awake()   
   {   
   t = transform; //Cache transform component   
   initialLocalPos = t.localPosition; //Store initial local position of the camera   
   }   

   public void Update ()   
   {   
   //Update rotation   
   rot += Input.GetAxis("Mouse Y") * rotationSpeed * ((invertY) ? -1 : 1) * Time.deltaTime;   
   if(rot < rotationLimit.y) //Check for lower limit   
   rot = rotationLimit.y;   
   if(rot > rotationLimit.x) //Check for upper limi   
   rot = rotationLimit.x;   
   t.localRotation = Quaternion.AngleAxis (rot, Vector3.right); //Apply rotation to transform   

   //Head bobbing   
   if(headBobEnabled)   
   {   
   //Calculate percentage of blend between stationary and bobbing camera positions   
   float percentage = Mathf.Min(1, Mathf.Abs(Input.GetAxis("Vertical")) + Mathf.Abs(Input.GetAxis("Horizontal")));   

   //Calculate desired x position   
   float desiredPosX = initialLocalPos.x + headBobDistance.x * Mathf.Sin(Time.time * headBobSpeed + Mathf.PI/2);   
   //Blend between stationary and desired x position   
   float newX = (initialLocalPos.x * (1 - percentage)) + (desiredPosX * (percentage));   

   //Calculate desired y position   
   float desiredPosY = initialLocalPos.y + headBobDistance.y * Mathf.Sin(Time.time * 2 * headBobSpeed);   
   //Blend between stationary and desired y position   
   float newY = (initialLocalPos.y * (1 - percentage)) + (desiredPosY * (percentage));   

   t.localPosition = new Vector3( newX, newY, t.localPosition.z);   
   }   
   }   
   }
   


Сохраним этот скрипт, откроем Unity, протестируем его (запустив игру ).По идеи, камера должна приподниматься, и опускаться.
Ну вроде-бы всё:).На следующем уроке мы попытаемся сделать :
-Радар (камера виду с верху ),
-Прицел, Фонарик, ,
-Пометки игроков на радаре ( типа : сам игрок – зелёный (или синий ), а боты – красные),
-Поинты ( точки к которым нужно будет идти нашему игроку для прохождения миссии).

Всем удачи!!!

Некоторые скрипты взяты с этого, и других сайтов, а некоторые написаны мною. Спасибо всем за внимание smile


Моя игра - Collect Fruit

Сообщение отредактировал AIDEN - Чт, 27 Июн 2013, 10:53
 
Сообщение(ПКМ-правая кнопка мыши).

Всем привет!
Это наш 2 урок по созданию FPS на движку Unity 3D.Сегодня мы сконцентрируем внимание на нашем игроку (Player), попытаемся сделать :
-1.Поставить игрока на нашу сцену,
-2.Сделаем ускорение в бегу( при нажатии Shift),
-3.Создать возможность приседать ( при нажатии Ctrl),
-4.Звук ходьбы.
-5. Движение камеры при ходьбе.

1.Начнём с того, что добавим игрока на сцену, для этого : в окне Project откроем папку Standard Assets-> Character Controllers, и вытянем на сцену префаб “First Person Controller”.После того как вы сделали это, вытяните игрока с земли( приблизительно на пол метра), что-бы при запуске игры он не провалился сквозь землю.
Можете запустить игру, проверить всё ли правильно мы сделали.

2.Теперь сделаем ускорение в бегу. Начнём с того , что создадим файл скрипта, для этого : в окошке Project (нажмём ПКМ на пустое место и выберем Create->JavaScript) в окне Project появится файл с JavaScript.Назовём его “ PlayerRun” и приступим к его написанию. Откройте этот скрипт. Запустится программа “Mono Develop”.Удаляем всё что есть сейчас в скрипте, и пишем :

Код

function Start () { CharacterMotor.an = 1; } // Character Motor,при старте игры - скорость ровняется 1.
    function Update() {   
   if (Input.GetKey(KeyCode.LeftShift)) { //Если нажата кнопка Left Shift то…
                   CharacterMotor.an = 1.5; //Скорость возрастает с 1, на 1.5
               } else {   
               if (Input.GetKeyUp (KeyCode.LeftShift)) {  //Если кнопка отпущена, то…
                   CharacterMotor.an = 1; //Скорость снижается с 1.5, на 1
               }   
               }   
   }


Теперь сохраним скрипт нажатием на Ctrl+S, или File->Save в меню “Mono Develop”.
Откроем Unity, и перетащим этот скрипт на нашего игрока (First Person Controller).Вот и всё, теперь протестируйте игру, при нажатии на левый Shift, игрок ускорится на 0.5, при отпускании уменьшится к стандартному.

3.Сделаем возможность приседать. Создадим новый Javascript (так, как было указано выше), и назовём его “CtrlPress”, откройте его, и впишите следующий код :

Код
   
var controller : CharacterController;  //Указываем игрока
      var oldHeight;      
      var newHeight: float;      
      var newPos;     
      var bf : boolean = false;      

      function Start () {      
      controller = GetComponent(CharacterController);    //Находим компонент CharacterController
      oldHeight = controller.height;      
      }      

     function Update() {         
     newPos = new Vector3(transform.position.x, transform.position.y + 0.7f, transform.position.z);     
                if (Input.GetKey(KeyCode.LeftControl)) {     
                    controller.height = newHeight;     
                    bf = true;     
                } else {     
                if (Input.GetKeyUp (KeyCode.LeftControl) && !Physics.Raycast (transform.position, Vector2.up)) {     
                    controller.height = oldHeight;     
                    transform.position = newPos;     
                    bf = false;     
                } else {     
                if (bf == true && !Physics.Raycast (transform.position, Vector2.up)) {     
                controller.height = oldHeight;     
                    transform.position = newPos;     
                    bf = false;     
                }     
                }     
                }     
     }


Сохраним скрипт, и откроем Unity.
Теперь перетащим скрипт “CtrlPress” на нашего игрока. После того как вы перетащите скрипт, нажмите на “First Person Controller” в меню Hierarchy ( чтобы он появился в окошке Inspector), и найдите там наш скрипт, и там где написано ”controller” укажите нашего игрока (перетащив игрока ”First Person Controller” на кружок рядом с ”controller” ) . Проверьте его, запустив игру.При нажатии на кнопку ”левый Ctrl” игрок присядет , при отпускании кнопки игрок встанет.
4.Добавим разнообразия нашему игроку, добавим звук ходьбы. Сначала добавим компонент ( для того чтобы звук воспроизводился ) нажмём на игрока, в меню Unity на вкладку Component->Audio->Audio Sourse( перепроверьте что бы ”First Person Controller” был отмечен в Hierarchy ). Создадим Javascript, и назвём его “PlayerMusicController”, впишем код :

Код
var WalkSound : AudioClip[];
var AudioStepLength = 0.3;

function Awake () {

   PlayStepSounds();   
}

function PlayStepSounds () {
   var controller : CharacterController = GetComponent(CharacterController);

   while (true) {
    if (controller.isGrounded && controller.velocity.magnitude > 0.3) {
     audio.clip = WalkSound[Random.Range(0, WalkSound.length)];
     audio.Play();
     yield WaitForSeconds(AudioStepLength);
    } else {
     yield;
    }
   }
}


Также добавим его к игроку.
В меню Inspector, в нашем скрипте, там где WalkSound->Size выставляем то число звуков, которые будут проигроватся при нажатии на кнопки управления ( для разнообразия, у меня стоит 3 звука ходьбы, и при нажатии кнопок управления, они каждый раз играют по разному ( в том смысле что, 3 разных звука играют поочерёдно ), и получается красивый звук.
Всё, звук готов, теперь перейдём на 5-ю тему.
5.Теперь наконец то сделаем так, что при ходьбе, камера нашего игрока немного передвигалась по оси “Y”(имитируя этим ходьбу ).Создадим скрипт С# (также как и Java Script, только выберем C#), назовём его CameraFPS, откроем его, и впишем код :

Код

using UnityEngine;   

   public class Camera_FPS : MonoBehaviour   
   {   
   public Vector2 rotationLimit; //Limit for the vertical rotation of the camera. X is higher limit, Y is lower limit.   
   public float rotationSpeed = 600.0f; //Vertical rotation speed of the camera   
   public bool invertY = true; //Invert vertical rotation   
   public bool headBobEnabled = true; //Enables/disables head bobbing   
   public Vector2 headBobDistance = new Vector2(0.2f, 0.3f); //The distance the camera travels in the y-axis for the headBobbing effect   
   public float headBobSpeed = 5.0f; //Speed at which the player's head bobs   

   private Vector3 initialLocalPos; //Starting local y-position of camera   
   private float rot; //Stores the rotation value incremented by mouse movement in the y-axis   
   private Transform t; //Reference to the transform component of the game object   

   public void Awake()   
   {   
   t = transform; //Cache transform component   
   initialLocalPos = t.localPosition; //Store initial local position of the camera   
   }   

   public void Update ()   
   {   
   //Update rotation   
   rot += Input.GetAxis("Mouse Y") * rotationSpeed * ((invertY) ? -1 : 1) * Time.deltaTime;   
   if(rot < rotationLimit.y) //Check for lower limit   
   rot = rotationLimit.y;   
   if(rot > rotationLimit.x) //Check for upper limi   
   rot = rotationLimit.x;   
   t.localRotation = Quaternion.AngleAxis (rot, Vector3.right); //Apply rotation to transform   

   //Head bobbing   
   if(headBobEnabled)   
   {   
   //Calculate percentage of blend between stationary and bobbing camera positions   
   float percentage = Mathf.Min(1, Mathf.Abs(Input.GetAxis("Vertical")) + Mathf.Abs(Input.GetAxis("Horizontal")));   

   //Calculate desired x position   
   float desiredPosX = initialLocalPos.x + headBobDistance.x * Mathf.Sin(Time.time * headBobSpeed + Mathf.PI/2);   
   //Blend between stationary and desired x position   
   float newX = (initialLocalPos.x * (1 - percentage)) + (desiredPosX * (percentage));   

   //Calculate desired y position   
   float desiredPosY = initialLocalPos.y + headBobDistance.y * Mathf.Sin(Time.time * 2 * headBobSpeed);   
   //Blend between stationary and desired y position   
   float newY = (initialLocalPos.y * (1 - percentage)) + (desiredPosY * (percentage));   

   t.localPosition = new Vector3( newX, newY, t.localPosition.z);   
   }   
   }   
   }
   


Сохраним этот скрипт, откроем Unity, протестируем его (запустив игру ).По идеи, камера должна приподниматься, и опускаться.
Ну вроде-бы всё:).На следующем уроке мы попытаемся сделать :
-Радар (камера виду с верху ),
-Прицел, Фонарик, ,
-Пометки игроков на радаре ( типа : сам игрок – зелёный (или синий ), а боты – красные),
-Поинты ( точки к которым нужно будет идти нашему игроку для прохождения миссии).

Всем удачи!!!

Некоторые скрипты взяты с этого, и других сайтов, а некоторые написаны мною. Спасибо всем за внимание smile

Автор - AIDEN
Дата добавления - 26 Июн 2013 в 16:42
eee12Дата: Ср, 28 Авг 2013, 13:02 | Сообщение # 2
 
Сообщений: 54
Награды: 0
Репутация: 10
Статус: Offline
Из всего что у меня получилось это только приседание.
бег-ошибка:
Цитата
MissingFieldException: Field 'CharacterMotor.an' not found.
Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.FindExtension (IEnumerable`1 candidates)
Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.Create (SetOrGet gos)
Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.CreateSetter ()
Boo.Lang.Runtime.RuntimeServices.DoCreatePropSetDispatcher (System.Object target, System.Type type, System.String name, System.Object value)
Boo.Lang.Runtime.RuntimeServices.CreatePropSetDispatcher (System.Object target, System.String name, System.Object value)
Boo.Lang.Runtime.RuntimeServices+<SetProperty>c__AnonStorey16.<>m__C ()
Boo.Lang.Runtime.DynamicDispatching.DispatcherCache.Get (Boo.Lang.Runtime.DynamicDispatching.DispatcherKey key, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.SetProperty (System.Object target, System.String name, System.Object value)
run.Update () (at Assets/Standard Assets/Character Controllers/Sources/Scripts/run.js:7)

хотя я сделал все как написано.
дальше камера - тоже не работает
а звук ходьбы- просто нету audio clip smile
Я новичок пока мало чего знаю подскажите sad
А нет не надо разобрался уже


Сообщение отредактировал eee12 - Ср, 16 Окт 2013, 11:07
 
СообщениеИз всего что у меня получилось это только приседание.
бег-ошибка:
Цитата
MissingFieldException: Field 'CharacterMotor.an' not found.
Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.FindExtension (IEnumerable`1 candidates)
Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.Create (SetOrGet gos)
Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.CreateSetter ()
Boo.Lang.Runtime.RuntimeServices.DoCreatePropSetDispatcher (System.Object target, System.Type type, System.String name, System.Object value)
Boo.Lang.Runtime.RuntimeServices.CreatePropSetDispatcher (System.Object target, System.String name, System.Object value)
Boo.Lang.Runtime.RuntimeServices+<SetProperty>c__AnonStorey16.<>m__C ()
Boo.Lang.Runtime.DynamicDispatching.DispatcherCache.Get (Boo.Lang.Runtime.DynamicDispatching.DispatcherKey key, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.SetProperty (System.Object target, System.String name, System.Object value)
run.Update () (at Assets/Standard Assets/Character Controllers/Sources/Scripts/run.js:7)

хотя я сделал все как написано.
дальше камера - тоже не работает
а звук ходьбы- просто нету audio clip smile
Я новичок пока мало чего знаю подскажите sad
А нет не надо разобрался уже

Автор - eee12
Дата добавления - 28 Авг 2013 в 13:02
mazahakaruДата: Вс, 26 Янв 2014, 03:18 | Сообщение # 3
 
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
eee12, у меня все получилось. Но кроме бега. Такая же ошибка как у тебя.
 
Сообщениеeee12, у меня все получилось. Но кроме бега. Такая же ошибка как у тебя.

Автор - mazahakaru
Дата добавления - 26 Янв 2014 в 03:18
seamanДата: Вс, 26 Янв 2014, 11:22 | Сообщение # 4
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
CharacterMotor.an
меняем на
CharacterMotor.movement.velocity
PS: не факт, что это единственное что нужно исправлять.
 
СообщениеCharacterMotor.an
меняем на
CharacterMotor.movement.velocity
PS: не факт, что это единственное что нужно исправлять.

Автор - seaman
Дата добавления - 26 Янв 2014 в 11:22
$_WuDi_$Дата: Пн, 10 Мар 2014, 00:35 | Сообщение # 5
Нет аватара
 
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
1 Проблема: При выполнение первого скрипта (бега) при тестировании если нажать на shift, то окно тестирования игры ставится на паузу.

2 Проблема: Скрип сотрясения камеры, не присваивается “First Person Controller”. Выдает какую то ошибку.

И еще не подскажи те ли как сделать что бы при приседании скорость ходьбы уменьшалась?
HELP


Сообщение отредактировал $_WuDi_$ - Пн, 10 Мар 2014, 00:38
 
Сообщение1 Проблема: При выполнение первого скрипта (бега) при тестировании если нажать на shift, то окно тестирования игры ставится на паузу.

2 Проблема: Скрип сотрясения камеры, не присваивается “First Person Controller”. Выдает какую то ошибку.

И еще не подскажи те ли как сделать что бы при приседании скорость ходьбы уменьшалась?
HELP

Автор - $_WuDi_$
Дата добавления - 10 Мар 2014 в 00:35
ХмырьДата: Вт, 17 Июн 2014, 16:11 | Сообщение # 6
 
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Скрипт бега и присаживания в одном "лице":

Писал не я, лишь немного модифицировал. Возможно, кому-то пригодится.
 
СообщениеСкрипт бега и присаживания в одном "лице":

Писал не я, лишь немного модифицировал. Возможно, кому-то пригодится.

Автор - Хмырь
Дата добавления - 17 Июн 2014 в 16:11
AltairДата: Вт, 17 Июн 2014, 16:24 | Сообщение # 7
Unity 3D PRO Developer
 
Сообщений: 758
Награды: 6
Репутация: 195
Статус: Offline
Хмырь, неправильный скрипт.
 
СообщениеХмырь, неправильный скрипт.

Автор - Altair
Дата добавления - 17 Июн 2014 в 16:24
ХмырьДата: Вт, 17 Июн 2014, 23:39 | Сообщение # 8
 
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Altair
Может и неправильный, но у меня работает отлично.
А что конкретно неправильно?
 
СообщениеAltair
Может и неправильный, но у меня работает отлично.
А что конкретно неправильно?

Автор - Хмырь
Дата добавления - 17 Июн 2014 в 23:39
PinkPanterДата: Чт, 03 Июл 2014, 22:22 | Сообщение # 9
Нет аватара
 
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Полезно
 
СообщениеПолезно

Автор - PinkPanter
Дата добавления - 03 Июл 2014 в 22:22
AltairДата: Пт, 04 Июл 2014, 18:21 | Сообщение # 10
Unity 3D PRO Developer
 
Сообщений: 758
Награды: 6
Репутация: 195
Статус: Offline
Хмырь, почему ты меняешь локалСкейл когда нужно радиус и высоту коллайдера ?
И позицию по игрику не обязательно трогать.
 
СообщениеХмырь, почему ты меняешь локалСкейл когда нужно радиус и высоту коллайдера ?
И позицию по игрику не обязательно трогать.

Автор - Altair
Дата добавления - 04 Июл 2014 в 18:21
seamanДата: Пт, 04 Июл 2014, 19:50 | Сообщение # 11
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
И позицию по игрику не обязательно трогать.

Если камера привязана к персу, то обязательно. Иначе нереалистично совсем будет.
А, сорри, если включена гравитация, то перс просто упадет. Не совсем реалистично, но незаметно.
 
Сообщение
Цитата
И позицию по игрику не обязательно трогать.

Если камера привязана к персу, то обязательно. Иначе нереалистично совсем будет.
А, сорри, если включена гравитация, то перс просто упадет. Не совсем реалистично, но незаметно.

Автор - seaman
Дата добавления - 04 Июл 2014 в 19:50
AltairДата: Пт, 04 Июл 2014, 22:11 | Сообщение # 12
Unity 3D PRO Developer
 
Сообщений: 758
Награды: 6
Репутация: 195
Статус: Offline
Цитата seaman ()
А, сорри, если включена гравитация, то перс просто упадет. Не совсем реалистично, но незаметно.

Если всё хорошо настроить то будет норм)
Цитата seaman ()
Если камера привязана к персу, то обязательно

У меня в проекте на видосах привязана,и я позицию не трогаю)
У меня меняется радиус и высота по игрику,и он совсем незаметно всё делает,что кажется вполне реалистичным)
 
Сообщение
Цитата seaman ()
А, сорри, если включена гравитация, то перс просто упадет. Не совсем реалистично, но незаметно.

Если всё хорошо настроить то будет норм)
Цитата seaman ()
Если камера привязана к персу, то обязательно

У меня в проекте на видосах привязана,и я позицию не трогаю)
У меня меняется радиус и высота по игрику,и он совсем незаметно всё делает,что кажется вполне реалистичным)

Автор - Altair
Дата добавления - 04 Июл 2014 в 22:11
ХмырьДата: Вс, 06 Июл 2014, 10:46 | Сообщение # 13
 
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Цитата Altair ()
почему ты меняешь локалСкейл

Не меняю, ибо как уже писал, скрипт не мой. Кстати, если менять высоту коллайдера, это решит проблему с "сжиманием" оружия при приседании?
 
Сообщение
Цитата Altair ()
почему ты меняешь локалСкейл

Не меняю, ибо как уже писал, скрипт не мой. Кстати, если менять высоту коллайдера, это решит проблему с "сжиманием" оружия при приседании?

Автор - Хмырь
Дата добавления - 06 Июл 2014 в 10:46
AltairДата: Вс, 06 Июл 2014, 11:41 | Сообщение # 14
Unity 3D PRO Developer
 
Сообщений: 758
Награды: 6
Репутация: 195
Статус: Offline
Цитата Хмырь ()
Не меняю, ибо как уже писал, скрипт не мой. Кстати, если менять высоту коллайдера, это решит проблему с "сжиманием" оружия при приседании?

Проблем никаких не будет..
Цитата Хмырь ()
немного модифицировал

тогда что же ты там модифицировал ?
 
Сообщение
Цитата Хмырь ()
Не меняю, ибо как уже писал, скрипт не мой. Кстати, если менять высоту коллайдера, это решит проблему с "сжиманием" оружия при приседании?

Проблем никаких не будет..
Цитата Хмырь ()
немного модифицировал

тогда что же ты там модифицировал ?

Автор - Altair
Дата добавления - 06 Июл 2014 в 11:41
Форум Игроделов » UNITY3D » МАНУАЛЫ И УРОКИ » Урок по созданию персонажа в Unity 3D (Этот урок о персонаже, и его улутшению)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024