如何为使用相同键盘的 2 个玩家分配不同的控制方案?

问题描述

我正在创建一个本地多人游戏,其中 2 个玩家使用相同的键盘来输入控件。我为玩家创建了 2 种不同的控制方案,但我正在努力寻找一种方法来为每个玩家角色分配不同的方案,以及如何检查哪个玩家正在使用哪种方案等

解决方法

转到 Unity GetAxis,您可以添加另一个轴形成

编辑 > 项目设置 > 输入管理器

如果你制作另外 2 个轴,名称分别为 "2ndPlayerHorizo​​ntal" 、 "2ndPlayerVertical" 并在玩家上放置标签 ("FirstPlayer","SecondPlayer")

您可以使用此代码:

using UnityEngine;
using System.Collections;

public class PlayersMovement: MonoBehaviour
{
    public float speed = 10.0f;
    public float rotationSpeed = 100.0f;

    float translation;
    float rotation;

    void Update()
    {
        if(this.CompareTag("FirstPlayer")
        {
            //1st player
            translation = Input.GetAxis("Vertical") * speed;
            float rotation = Input.GetAxis("Horizontal") * rotationSpeed;
        }

        if(this.CompareTag("SecondPlayer")
        {
            //2nd player
            translation = Input.GetAxis("Vertical") * speed;
            rotation = Input.GetAxis("Horizontal") * rotationSpeed;
        }

        translation *= Time.deltaTime;
        rotation *= Time.deltaTime;
        transform.Translate(0,translation);
        transform.Rotate(0,rotation,0);
    }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...