C# Runner - Форум Игроделов
Пт, 17 Май 2024, 07:31 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » C# Runner
C# Runner
bahaДата: Ср, 28 Май 2014, 19:56 | Сообщение # 1
Нет аватара
 
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
Хочу я сделать игру runner, только не могу понять как сделать так чтобы player перемещался в лево в право как в subway surfs. Может длину шага указать?

Добавлено (28 Май 2014, 19:56)
---------------------------------------------
Как определить длинну шага?

 
СообщениеХочу я сделать игру runner, только не могу понять как сделать так чтобы player перемещался в лево в право как в subway surfs. Может длину шага указать?

Добавлено (28 Май 2014, 19:56)
---------------------------------------------
Как определить длинну шага?


Автор - baha
Дата добавления - 28 Май 2014 в 19:56
ЛевшаДата: Чт, 29 Май 2014, 00:10 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
За шаг берется размер между полосами в юнитах (1метр).
Дальше проверяем если персонах не на крайней полосе в сторону передвижения, то лерпим его позицию вправо или влево.


X.cor.R (Prologue)
 
СообщениеЗа шаг берется размер между полосами в юнитах (1метр).
Дальше проверяем если персонах не на крайней полосе в сторону передвижения, то лерпим его позицию вправо или влево.

Автор - Левша
Дата добавления - 29 Май 2014 в 00:10
bahaДата: Вс, 01 Июн 2014, 13:10 | Сообщение # 3
Нет аватара
 
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
Какими еще полосами?
 
СообщениеКакими еще полосами?

Автор - baha
Дата добавления - 01 Июн 2014 в 13:10
игнатДата: Вс, 01 Июн 2014, 14:45 | Сообщение # 4
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
По твоему условию есть три дороги - это и есть "полосы".


Правила форума · участник GCC
 
СообщениеПо твоему условию есть три дороги - это и есть "полосы".

Автор - игнат
Дата добавления - 01 Июн 2014 в 14:45
bahaДата: Вс, 01 Июн 2014, 17:13 | Сообщение # 5
Нет аватара
 
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
Код
public CharacterController player;
public GameObject _camera;
private float speed = 10.0f;
private float JSpeed = 10.0f;
private float RDist;
private float LDist;
public KeyCode right;
public KeyCode left;
public KeyCode jump;
public Transform _right;
public Transform _left;
private bool canGoRight = true;
private bool canGoLeft = true;
//    private bool canGo = true;
private Vector3 MoveDir = Vector3.zero;
private float Gravity = 20.0F;
void Update(){

if (player.isGrounded) {
MoveDir = new Vector3 (0, Input.GetAxis ("Vertical"), 0);
MoveDir = transform.TransformDirection (MoveDir);
MoveDir *= speed;
if (Input.GetKeyDown (jump))
MoveDir.y = JSpeed;
}
MoveDir.y -= Gravity * Time.deltaTime;
player.Move (MoveDir * Time.deltaTime);

_camera.transform.position += Vector3.right * speed * Time.deltaTime;
player.transform.position += player.transform.forward * speed * Time.deltaTime;

if (Input.GetKeyDown(right) & canGoRight == true) {
player.transform.position += player.transform.right * 4;
}

if (Input.GetKeyDown(left) & canGoLeft == true) {
player.transform.position -= player.transform.right * 4;
}
//left , right
RaycastHit hit;
//left
Vector3 direction = _left.TransformDirection (Vector3.forward);
if(Physics.Raycast (_left.position,direction,out hit,100000.0f)){
LDist = hit.distance;
}
Vector3 direction2 = _right.TransformDirection (-Vector3.forward);
if(Physics.Raycast (_right.position,direction2,out hit,100000.0f)){
RDist = hit.distance;
}
if (LDist < 0.6F) {
canGoLeft = false;
} else {
canGoLeft = true;
}
if (RDist < 0.6F) {
canGoRight = false;
}
else {
canGoRight = true;
}
}
}


Добавлено (01 Июн 2014, 16:41)
---------------------------------------------
Вот мой код

Добавлено (01 Июн 2014, 17:13)
---------------------------------------------
как сделать плавное перемещение влево в право???
 
Сообщение
Код
public CharacterController player;
public GameObject _camera;
private float speed = 10.0f;
private float JSpeed = 10.0f;
private float RDist;
private float LDist;
public KeyCode right;
public KeyCode left;
public KeyCode jump;
public Transform _right;
public Transform _left;
private bool canGoRight = true;
private bool canGoLeft = true;
//    private bool canGo = true;
private Vector3 MoveDir = Vector3.zero;
private float Gravity = 20.0F;
void Update(){

if (player.isGrounded) {
MoveDir = new Vector3 (0, Input.GetAxis ("Vertical"), 0);
MoveDir = transform.TransformDirection (MoveDir);
MoveDir *= speed;
if (Input.GetKeyDown (jump))
MoveDir.y = JSpeed;
}
MoveDir.y -= Gravity * Time.deltaTime;
player.Move (MoveDir * Time.deltaTime);

_camera.transform.position += Vector3.right * speed * Time.deltaTime;
player.transform.position += player.transform.forward * speed * Time.deltaTime;

if (Input.GetKeyDown(right) & canGoRight == true) {
player.transform.position += player.transform.right * 4;
}

if (Input.GetKeyDown(left) & canGoLeft == true) {
player.transform.position -= player.transform.right * 4;
}
//left , right
RaycastHit hit;
//left
Vector3 direction = _left.TransformDirection (Vector3.forward);
if(Physics.Raycast (_left.position,direction,out hit,100000.0f)){
LDist = hit.distance;
}
Vector3 direction2 = _right.TransformDirection (-Vector3.forward);
if(Physics.Raycast (_right.position,direction2,out hit,100000.0f)){
RDist = hit.distance;
}
if (LDist < 0.6F) {
canGoLeft = false;
} else {
canGoLeft = true;
}
if (RDist < 0.6F) {
canGoRight = false;
}
else {
canGoRight = true;
}
}
}


Добавлено (01 Июн 2014, 16:41)
---------------------------------------------
Вот мой код

Добавлено (01 Июн 2014, 17:13)
---------------------------------------------
как сделать плавное перемещение влево в право???

Автор - baha
Дата добавления - 01 Июн 2014 в 17:13
игнатДата: Пн, 02 Июн 2014, 11:12 | Сообщение # 6
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
MathF.Lerp (есть ещё Vector3.lerp)


Правила форума · участник GCC
 
СообщениеMathF.Lerp (есть ещё Vector3.lerp)

Автор - игнат
Дата добавления - 02 Июн 2014 в 11:12
bahaДата: Вт, 03 Июн 2014, 14:18 | Сообщение # 7
Нет аватара
 
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
Но как мне сделать плавное изменение положения? У меня нет поинтов, а есть четко заданая дистанция шага.
 
СообщениеНо как мне сделать плавное изменение положения? У меня нет поинтов, а есть четко заданая дистанция шага.

Автор - baha
Дата добавления - 03 Июн 2014 в 14:18
Форум Игроделов » UNITY3D » СКРИПТИНГ » C# Runner
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024