2d игра - Форум Игроделов
Пн, 20 Май 2024, 04:42 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » HELP & FAQ » 2d игра
2d игра
serega990306Дата: Вс, 16 Мар 2014, 15:00 | Сообщение # 1
Нет аватара
 
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
Пытаюсь сделать небольшую игрушку, но не могу кое с чем разобраться. Персонаж постоянно двигается впереди у него на встречи препятствия, которые надо перепрыгивать. Также есть пол и потолок. Возможно вообще сделать так чтобы при нажатии, персонаж, бежавший по полу, переворачивался и падал на потолок и дальше бежал по потолку? То есть при нажатии на кнопку он переворачивался и либо взлетал на потолок, либо падал на пол.
 
СообщениеПытаюсь сделать небольшую игрушку, но не могу кое с чем разобраться. Персонаж постоянно двигается впереди у него на встречи препятствия, которые надо перепрыгивать. Также есть пол и потолок. Возможно вообще сделать так чтобы при нажатии, персонаж, бежавший по полу, переворачивался и падал на потолок и дальше бежал по потолку? То есть при нажатии на кнопку он переворачивался и либо взлетал на потолок, либо падал на пол.

Автор - serega990306
Дата добавления - 16 Мар 2014 в 15:00
ЛевшаДата: Пн, 17 Мар 2014, 07:46 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата serega990306 ()
Как?

Код

gravityDirect = -gravityDirect;
transform.up = -gravityDirect;


X.cor.R (Prologue)
 
Сообщение
Цитата serega990306 ()
Как?

Код

gravityDirect = -gravityDirect;
transform.up = -gravityDirect;

Автор - Левша
Дата добавления - 17 Мар 2014 в 07:46
ilyakosДата: Пн, 17 Мар 2014, 12:13 | Сообщение # 3
 
Сообщений: 171
Награды: 0
Репутация: 8
Статус: Offline
Код

using UnityEngine;
using System.Collections;

public class Run : MonoBehaviour {
public bool isCol;
public bool isGo;

public Transform hitObj;

private Vector3 hitPoint;
private Vector3 startPoint;

public float timeout;

// Use this for initialization
void Start () {
startPoint = transform.position;
}

// Update is called once per frame
void Update () {
if(!isGo){
transform.position += transform.forward*Time.deltaTime*3;
}
transform.position = Vector3.Lerp(transform.position,new Vector3(startPoint.x,transform.position.y,transform.position.z),Time.deltaTime*20);
RaycastHit hit;
Vector3 dir = transform.TransformDirection(Vector3.up*100);
if(Physics.Raycast(transform.position,dir,out hit, 10)){
}
if(Input.GetKeyDown(KeyCode.Space) && !isGo){
timeout = 2f;
hitObj = hit.transform;
hitPoint = hit.point;
isGo = true;
}
if(Vector3.Distance(hitPoint,transform.position)<=0.5f){
isGo = false;
}
if(timeout>0){
transform.rotation = Quaternion.Lerp(transform.rotation,hitObj.rotation,Time.deltaTime*5f);
timeout-=Time.deltaTime;
}
if(isGo){
transform.position = Vector3.Lerp(transform.position,new Vector3(transform.position.x,hitPoint.y,hitPoint.z),Time.deltaTime*3f);
}
}
}


Сообщение отредактировал ilyakos - Пн, 17 Мар 2014, 12:13
 
Сообщение
Код

using UnityEngine;
using System.Collections;

public class Run : MonoBehaviour {
public bool isCol;
public bool isGo;

public Transform hitObj;

private Vector3 hitPoint;
private Vector3 startPoint;

public float timeout;

// Use this for initialization
void Start () {
startPoint = transform.position;
}

// Update is called once per frame
void Update () {
if(!isGo){
transform.position += transform.forward*Time.deltaTime*3;
}
transform.position = Vector3.Lerp(transform.position,new Vector3(startPoint.x,transform.position.y,transform.position.z),Time.deltaTime*20);
RaycastHit hit;
Vector3 dir = transform.TransformDirection(Vector3.up*100);
if(Physics.Raycast(transform.position,dir,out hit, 10)){
}
if(Input.GetKeyDown(KeyCode.Space) && !isGo){
timeout = 2f;
hitObj = hit.transform;
hitPoint = hit.point;
isGo = true;
}
if(Vector3.Distance(hitPoint,transform.position)<=0.5f){
isGo = false;
}
if(timeout>0){
transform.rotation = Quaternion.Lerp(transform.rotation,hitObj.rotation,Time.deltaTime*5f);
timeout-=Time.deltaTime;
}
if(isGo){
transform.position = Vector3.Lerp(transform.position,new Vector3(transform.position.x,hitPoint.y,hitPoint.z),Time.deltaTime*3f);
}
}
}

Автор - ilyakos
Дата добавления - 17 Мар 2014 в 12:13
Форум Игроделов » UNITY3D » HELP & FAQ » 2d игра
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024