所以在这里我是一个游戏开发人员谁最近使用统一,并已几乎放弃处理这些东西。
我目前正在开发一款2D平台游戏,还有一个遗留下来的,安卓控制按钮。
我使用“标准资产”,Unity的“CrossPlatformInput”来创建我需要的Android控制器。
而且经过测试,移动游戏中的人物根本不起作用,我已经按照指南仔细又仔细地操作了很多次,结果还是一样
有谁能告诉我发生了什么吗?
这是我正在使用的失败代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
public class Pemain : MonoBehaviour
{
public Rigidbody2D rb;
public float movespeed = 5f;
public int jumppower;
public Transform groundCheck;
public float groundCheckRadius;
public LayerMask whatIsGround;
private bool onGround;
private Animator anim;
private int facing;
void Start ()
{
rb = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
jumppower = 5;
facing = 1;
}
void FixedUpdate ()
{
onGround = Physics2D.OverlapCircle (groundCheck.position,groundCheckRadius,whatIsGround);
}
void Update () {
float move = CrossPlatformInputManager.GetAxis("Horizontal");
if (Input.GetKey(KeyCode.LeftArrow))
{
rb.velocity = new Vector2 (-movespeed, rb.velocity.y);
anim.SetBool ("Walking", true);
if (facing == 1)
{
transform.localScale = new Vector3 (-1f, 1f, 1f);
facing = 0;
}
} else if (Input.GetKey(KeyCode.RightArrow))
{
rb.velocity = new Vector2(movespeed, rb.velocity.y);
anim.SetBool ("Walking", true);
if (facing == 0)
{
transform.localScale = new Vector3 (1f, 1f, 1f);
facing = 1;
}
} else
{
anim.SetBool ("Walking", false);
}
if (Input.GetKey(KeyCode.Space) && onGround)
{
rb.velocity = new Vector2 (rb.velocity.x,jumppower);
}
}
}
1条答案
按热度按时间roejwanj1#
你的代码中根本没有使用
move
变量,所以CrossPlatformInput不能对你的角色的移动产生任何影响。你应该把代码修改成类似这样的东西。您可能还需要提高C#技能,因为同时学习Unity和编程是非常困难的。