Addforce() unity 3d с контроллером 2d персонажейC#

Место общения программистов C#
Ответить
Anonymous
 Addforce() unity 3d с контроллером 2d персонажей

Сообщение Anonymous »

Я разрабатываю 2D-уровень игры, но делаю его в 3D-среде с использованием Unity3d и кода C#. Я сделал этот контроллер для своего персонажа, так как хотел, чтобы он следовал за положением мыши (например, элементы управления крошечным воришкой), но мой персонаж просто сошел с ума, и когда я нажимаю, он просто движется... Ну, не так хаотично, как кажется, но очень шатко моя позиция мыши... Это мой код, и если у вас есть хороший учебник или что-то вроде игры Tiny Thief, сообщите мне. Спасибо.

using UnityEngine;
using System.Collections;

// [RequireComponent(typeof (PlatformerCharacter2D))]
using System;

public class Robot_Moves : MonoBehaviour
{
private Vector3 wantedPos;
private Vector3 mousePos;
private float relativePos;
[HideInInspector]
public bool
facingRight = false;

void Update ()
{
if (Time.time > 2) {
if (Input.GetMouseButtonDown (0)) {
mousePos = Input.mousePosition;
mousePos.z = 100f;
mousePos.y = 0f;
wantedPos = Camera.main.ScreenToWorldPoint (mousePos);
Debug.Log (wantedPos);

}
relativePos = wantedPos.x - transform.position.x;
if (Mathf.Abs (relativePos) > 1) {
transform.GetComponent ().AddForce (new Vector2 (relativePos, 0f) * 40f, ForceMode2D.Force);
}
}
}
void FixedUpdate ()
{
if (relativePos > 0 && facingRight)
Flip ();
else if (relativePos < 0 && !facingRight)
Flip ();
}

void Flip ()
{
facingRight = !facingRight;
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}


Подробнее здесь: https://stackoverflow.com/questions/292 ... -conroller
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»