Files
Fishing2/Assets/ThirdParty/Rewired/Examples/CustomControllersTouch/Scripts/CustomControllerDemo_Player.cs
2025-05-10 12:49:47 +08:00

61 lines
2.2 KiB
C#

// Copyright (c) 2014 Augie R. Maddox, Guavaman Enterprises. All rights reserved.
namespace Rewired.Demos {
using UnityEngine;
using Rewired;
[AddComponentMenu("")]
[RequireComponent(typeof(CharacterController))]
public class CustomControllerDemo_Player : MonoBehaviour {
public int playerId;
public float speed = 1;
public float bulletSpeed = 20;
public GameObject bulletPrefab;
private Player _player; // the Rewired player
private CharacterController cc;
private Player player {
get {
// Get the Rewired Player object for this player. Refresh it as needed so it will get the new reference after a script recompile in the editor.
if(_player == null) _player = ReInput.players.GetPlayer(playerId);
return _player;
}
}
void Awake() {
cc = GetComponent<CharacterController>();
}
void Update() {
if(!ReInput.isReady) return; // Exit if Rewired isn't ready. This would only happen during a script recompile in the editor.
Vector2 moveVector = new Vector2(
player.GetAxis("Move Horizontal"),
player.GetAxis("Move Vertical")
);
cc.Move(moveVector * speed * Time.deltaTime);
if(player.GetButtonDown("Fire")) {
Vector3 offset = Vector3.Scale(new Vector3(1, 0, 0), transform.right);
GameObject bullet = (GameObject)Instantiate(bulletPrefab, transform.position + offset, Quaternion.identity);
Vector3 velocity = new Vector3(bulletSpeed * transform.right.x, 0, 0);
#if UNITY_6000_0_OR_NEWER
bullet.GetComponent<Rigidbody>().linearVelocity = velocity;
#else
bullet.GetComponent<Rigidbody>().velocity = velocity;
#endif
}
if(player.GetButtonDown("Change Color")) {
Renderer renderer = GetComponent<Renderer>();
Material mat = renderer.material;
mat.color = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), 1.0f);
renderer.material = mat;
}
}
}
}