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