- Kod: Zaznacz wszystko
if(Application.loadedLevelName == "dom1")
{
postac.position = new Vector3(8.55f, 0.356f, 17.36f);
postac.eulerAngles = new Vector3(0, 90, 0);
}
I niby wszystko w porządku.
JEDNAK
Mój skrypt poruszania wygląda tak:
- Kod: Zaznacz wszystko
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class PlayerControler : MonoBehaviour
{
//Obiekt odpowiedzialny za ruch gracza.
public CharacterController characterControler;
public float predkoscPoruszania = 15.0f;
public float wysokoscSkoku = 2.0f;
public float aktualnaWysokoscSkoku = 0f;
public float predkoscBiegania = 15.0f;
public float predkoscChodzenia = 12.0f;
public bool moznachodzic = true;
void Start()
{
characterControler = GetComponent<CharacterController>();
}
void Update()
{
poruszanie();
}
void poruszanie()
{
if (moznachodzic == true)
{
float ruchprzodtyl = Input.GetAxis("Vertical") * predkoscPoruszania;
float ruchlewoprawo = Input.GetAxis("Horizontal") * predkoscPoruszania;
if (Input.GetKey("left shift"))
{
predkoscPoruszania = predkoscBiegania;
}
else
{
predkoscPoruszania = predkoscChodzenia;
}
Vector3 ruch = new Vector3(ruchlewoprawo, aktualnaWysokoscSkoku, ruchprzodtyl);
ruch = transform.rotation * ruch;
characterControler.Move(ruch * Time.deltaTime);
}
}
}
Nie wiem czy to ważna ale mam również skrypt który blokuje "wywracanie się postaci"
- Kod: Zaznacz wszystko
public Transform postac;
public float potrzebarotacji = 0f;
void Update()
{
if (postac.eulerAngles.x != 0)
{
postac.eulerAngles = new Vector3(potrzebarotacji, postac.eulerAngles.y, postac.eulerAngles.z);
}
if(postac.eulerAngles.z != 0)
{
postac.eulerAngles = new Vector3(postac.eulerAngles.x, postac.eulerAngles.y, potrzebarotacji);
}
I teraz po wciśnięciu postać dziwnie się zachowuje. Albo bardzo szybko porusza się do przodu, i nic nie mogę na to poradzić,
albo się obraca.
Czego to może być wina?