mirror of
https://github.com/RHeavenStudioPlus/HeavenStudioPlus.git
synced 2024-11-10 11:45:09 +00:00
Update repo to latest
This commit is contained in:
parent
180fea7832
commit
938580b880
11 changed files with 820 additions and 767 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: b7506008d0590bb43b83146e346e76a8
|
guid: 81da809b3fd51eb46a30b4e0facdc1d3
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: d7a937de053f9824daf68b049d7676ed
|
guid: c7b0aefc20b1440439c0a3686f7331a6
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
|
|
|
@ -3984,7 +3984,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 0}
|
m_AnchorMax: {x: 1, y: 0}
|
||||||
m_AnchoredPosition: {x: -289.15005, y: 2}
|
m_AnchoredPosition: {x: -289.15002, y: 2}
|
||||||
m_SizeDelta: {x: -578.29, y: 49.92}
|
m_SizeDelta: {x: -578.29, y: 49.92}
|
||||||
m_Pivot: {x: 0.5, y: 0}
|
m_Pivot: {x: 0.5, y: 0}
|
||||||
--- !u!114 &156962255
|
--- !u!114 &156962255
|
||||||
|
@ -13464,7 +13464,7 @@ MonoBehaviour:
|
||||||
m_HandleRect: {fileID: 704039020}
|
m_HandleRect: {fileID: 704039020}
|
||||||
m_Direction: 0
|
m_Direction: 0
|
||||||
m_Value: 0
|
m_Value: 0
|
||||||
m_Size: 0.032871276
|
m_Size: 0.03287128
|
||||||
m_NumberOfSteps: 0
|
m_NumberOfSteps: 0
|
||||||
m_OnValueChanged:
|
m_OnValueChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
|
@ -24808,7 +24808,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0.5}
|
m_AnchorMin: {x: 0, y: 0.5}
|
||||||
m_AnchorMax: {x: 1, y: 0.5}
|
m_AnchorMax: {x: 1, y: 0.5}
|
||||||
m_AnchoredPosition: {x: 0, y: 83.22952}
|
m_AnchoredPosition: {x: 0, y: 129.85194}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 1}
|
m_Pivot: {x: 0.5, y: 1}
|
||||||
--- !u!114 &1154875944
|
--- !u!114 &1154875944
|
||||||
|
|
|
@ -70,13 +70,14 @@ namespace HeavenStudio.Games
|
||||||
public bool hasMissed;
|
public bool hasMissed;
|
||||||
|
|
||||||
[Header("Waypoint")]
|
[Header("Waypoint")]
|
||||||
[SerializeField] float wayPointZForForth;
|
public float wayPointZForForth;
|
||||||
|
|
||||||
[Header("Curves")]
|
[Header("Curves")]
|
||||||
public BezierCurve3D closeRallyCurve;
|
public BezierCurve3D closeRallyCurve;
|
||||||
|
public BezierCurve3D farRallyCurve;
|
||||||
|
public BezierCurve3D fartherRallyCurve;
|
||||||
|
public BezierCurve3D farthestRallyCurve;
|
||||||
public BezierCurve3D closeRallyReturnCurve;
|
public BezierCurve3D closeRallyReturnCurve;
|
||||||
public BezierCurve3D MissCurve;
|
|
||||||
public BezierCurve3D MissReturnCurve;
|
|
||||||
|
|
||||||
[Header("Debug")]
|
[Header("Debug")]
|
||||||
public float beatShown;
|
public float beatShown;
|
||||||
|
@ -85,6 +86,7 @@ namespace HeavenStudio.Games
|
||||||
public int wantDistance;
|
public int wantDistance;
|
||||||
public bool wantSilent;
|
public bool wantSilent;
|
||||||
public float beatHolder;
|
public float beatHolder;
|
||||||
|
public Transform holderPos;
|
||||||
|
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
|
@ -120,8 +122,11 @@ namespace HeavenStudio.Games
|
||||||
if(lengthHolder != lengthShown)
|
if(lengthHolder != lengthShown)
|
||||||
{
|
{
|
||||||
started = true;
|
started = true;
|
||||||
|
//convert to 2 decimal places
|
||||||
Rally(serveBeat + (int)currentBeat, wantSilent, lengthHolder);
|
var f = currentBeat;
|
||||||
|
//f = Mathf.Round(f * 10.0f) * 0.1f;
|
||||||
|
Rally(serveBeat + (int)f, wantSilent, lengthHolder);
|
||||||
|
//Debug.Log("Beat Loop: " + serveBeat + f);
|
||||||
//Debug.Log("Serve Beat: " + serveBeat);
|
//Debug.Log("Serve Beat: " + serveBeat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,13 +151,25 @@ namespace HeavenStudio.Games
|
||||||
public void SpawnObject(float beat, int type)
|
public void SpawnObject(float beat, int type)
|
||||||
{
|
{
|
||||||
BezierCurve3D curve = null;
|
BezierCurve3D curve = null;
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case (int)DistanceSound.close:
|
case (int)DistanceSound.close:
|
||||||
curve = closeRallyCurve;
|
curve = closeRallyCurve;
|
||||||
break;
|
break;
|
||||||
|
case (int)DistanceSound.far:
|
||||||
|
curve = farRallyCurve;
|
||||||
|
break;
|
||||||
|
case (int)DistanceSound.farther:
|
||||||
|
curve = fartherRallyCurve;
|
||||||
|
break;
|
||||||
|
case (int)DistanceSound.farthest:
|
||||||
|
curve = farthestRallyCurve;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//curve.KeyPoints[0].transform.position = new Vector3(holderPos.position.x, holderPos.position.y, wayPointZForForth);
|
||||||
|
|
||||||
if (!shuttleActive)
|
if (!shuttleActive)
|
||||||
{
|
{
|
||||||
ActiveShuttle = GameObject.Instantiate(Shuttlecock, objHolder.transform);
|
ActiveShuttle = GameObject.Instantiate(Shuttlecock, objHolder.transform);
|
||||||
|
@ -163,7 +180,7 @@ namespace HeavenStudio.Games
|
||||||
shuttleScript.flyPos = 0f;
|
shuttleScript.flyPos = 0f;
|
||||||
shuttleScript.isReturning = false;
|
shuttleScript.isReturning = false;
|
||||||
shuttleScript.startBeat = (int)Conductor.instance.songPositionInBeats;
|
shuttleScript.startBeat = (int)Conductor.instance.songPositionInBeats;
|
||||||
shuttleScript.curve = closeRallyCurve;
|
shuttleScript.curve = curve;
|
||||||
//float normalizedBeatAnim = Conductor.instance.GetPositionFromBeat(beat, 3f);
|
//float normalizedBeatAnim = Conductor.instance.GetPositionFromBeat(beat, 3f);
|
||||||
|
|
||||||
//ActiveShuttle.transform.position = curve.GetPoint(normalizedBeatAnim);
|
//ActiveShuttle.transform.position = curve.GetPoint(normalizedBeatAnim);
|
||||||
|
@ -175,23 +192,36 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void ReturnObject(float beat, int type)
|
public void ReturnObject(float beat, int type)
|
||||||
{
|
{
|
||||||
|
|
||||||
BezierCurve3D curve = null;
|
BezierCurve3D curve = null;
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case (int)DistanceSound.close:
|
case (int)DistanceSound.close:
|
||||||
curve = closeRallyCurve;
|
curve = closeRallyCurve;
|
||||||
break;
|
break;
|
||||||
|
case (int)DistanceSound.far:
|
||||||
|
curve = farRallyCurve;
|
||||||
|
break;
|
||||||
|
case (int)DistanceSound.farther:
|
||||||
|
curve = fartherRallyCurve;
|
||||||
|
break;
|
||||||
|
case (int)DistanceSound.farthest:
|
||||||
|
curve = farthestRallyCurve;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ActiveShuttle.transform.localPosition = curve.KeyPoints[0].transform.position;
|
||||||
var shuttleScript = ActiveShuttle.GetComponent<Shuttlecock>();
|
var shuttleScript = ActiveShuttle.GetComponent<Shuttlecock>();
|
||||||
shuttleScript.flyPos = 0f;
|
shuttleScript.flyPos = 0f;
|
||||||
shuttleScript.isReturning = true;
|
shuttleScript.isReturning = true;
|
||||||
shuttleScript.startBeat = beat;
|
shuttleScript.startBeat = beat;
|
||||||
shuttleScript.curve = closeRallyReturnCurve;
|
//shuttleScript.curve = closeRallyReturnCurve;
|
||||||
//float normalizedBeatAnim = Conductor.instance.GetPositionFromBeat(beat, 3f);
|
//float normalizedBeatAnim = Conductor.instance.GetPositionFromBeat(beat, 3f);
|
||||||
|
|
||||||
//ActiveShuttle.transform.position = curve.GetPoint(normalizedBeatAnim);
|
//ActiveShuttle.transform.position = curve.GetPoint(normalizedBeatAnim);
|
||||||
ActiveShuttle.transform.rotation = Quaternion.Euler(0, 0, 0);
|
ActiveShuttle.transform.rotation = Quaternion.Euler(0, 0, 0);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//change to something more optimized
|
//change to something more optimized
|
||||||
|
@ -316,7 +346,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
//new BeatAction.Action(beat, delegate { Forthington.GetComponent<Animator>().Play("Ready");} ),
|
//new BeatAction.Action(beat, delegate { Forthington.GetComponent<Animator>().Play("Ready");} ),
|
||||||
new BeatAction.Action(beat, delegate { Forthington.GetComponent<Animator>().Play("Hit");} ),
|
new BeatAction.Action(beat, delegate { Forthington.GetComponent<Animator>().Play("Hit");} ),
|
||||||
new BeatAction.Action(beat, delegate { SpawnObject(beat, (int)e_BaBumState); } ),
|
//new BeatAction.Action(beat, delegate { SpawnObject(beat, (int)e_BaBumState); } ),
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (e_BaBumState)
|
switch (e_BaBumState)
|
||||||
|
@ -388,8 +418,6 @@ namespace HeavenStudio.Games
|
||||||
lengthHolder = 0f;
|
lengthHolder = 0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -400,6 +428,12 @@ namespace HeavenStudio.Games
|
||||||
serveBeat = 0f;
|
serveBeat = 0f;
|
||||||
lengthShown = 0f;
|
lengthShown = 0f;
|
||||||
lengthHolder = 0f;
|
lengthHolder = 0f;
|
||||||
|
|
||||||
|
//if (!ActiveShuttle)
|
||||||
|
//{
|
||||||
|
// SpawnObject(beat, (int)e_BaBumState);
|
||||||
|
//}
|
||||||
|
|
||||||
string[] sounds = { "", "", "", "", "", ""};
|
string[] sounds = { "", "", "", "", "", ""};
|
||||||
string[] sounds2 = { "", "", "" };
|
string[] sounds2 = { "", "", "" };
|
||||||
if (e_BaBumState == DistanceSound.close || type == 0)
|
if (e_BaBumState == DistanceSound.close || type == 0)
|
||||||
|
@ -507,25 +541,6 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
Baxter.GetComponent<Animator>().Play("Hit");
|
Baxter.GetComponent<Animator>().Play("Hit");
|
||||||
hasMissed = false;
|
hasMissed = false;
|
||||||
//BeatAction.New(gameObject, new List<BeatAction.Action>()
|
|
||||||
//{
|
|
||||||
// new BeatAction.Action(beat + .25f, delegate { if(!babum) { Forthington.GetComponent<Animator>().Play("Ready"); } }),
|
|
||||||
//});
|
|
||||||
|
|
||||||
//var shuttleScript = ActiveShuttle.GetComponent<Shuttlecock>();
|
|
||||||
//shuttleScript.isReturning = true;
|
|
||||||
////Debug.Log(beatHolder);
|
|
||||||
//ActiveShuttle.transform.rotation = Quaternion.Euler(0, 0, 0);
|
|
||||||
//shuttleScript.startBeat = (int)Conductor.instance.songPositionInBeats;
|
|
||||||
//shuttleScript.curve = closeRallyReturnCurve;
|
|
||||||
|
|
||||||
ReturnObject((int)Conductor.instance.songPositionInBeats + 1f, 0);
|
|
||||||
//BeatAction.New(gameObject, new List<BeatAction.Action>()
|
|
||||||
//{
|
|
||||||
// new BeatAction.Action(beat + 1f, delegate { ActiveShuttle.transform.rotation = Quaternion.Euler(0, 0, 0);}),
|
|
||||||
// new BeatAction.Action(beat + 1f, delegate {shuttleScript.startBeat = (int)Conductor.instance.songPositionInBeats; }),
|
|
||||||
// new BeatAction.Action(beat + 1f, delegate {shuttleScript.curve = closeRallyReturnCurve;}),
|
|
||||||
//});
|
|
||||||
|
|
||||||
if (e_BaBumState == DistanceSound.close)
|
if (e_BaBumState == DistanceSound.close)
|
||||||
{
|
{
|
||||||
|
@ -543,8 +558,20 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
Jukebox.PlayOneShotGame("airRally/hitBaxter_Farthest");
|
Jukebox.PlayOneShotGame("airRally/hitBaxter_Farthest");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (beatHolder % 2 == 0)
|
||||||
|
{
|
||||||
|
//ReturnObject(beatHolder + 1, 0);
|
||||||
|
//Debug.Log("a");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//ReturnObject(beatHolder + 1, 0);
|
||||||
|
//Debug.Log("b");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Debug.Log("BeatHolder: " + beatHolder);
|
||||||
served = false;
|
served = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,15 +19,15 @@ namespace HeavenStudio.Games.Scripts_AirRally
|
||||||
|
|
||||||
[NonReorderable] public BezierCurve3D curve;
|
[NonReorderable] public BezierCurve3D curve;
|
||||||
AirRally game;
|
AirRally game;
|
||||||
|
Vector3 nextPos;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
game = AirRally.instance;
|
game = AirRally.instance;
|
||||||
flyBeats = isReturning ? 1.2f : 1.2f;
|
flyBeats = 1f;
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
flyPos = cond.GetPositionFromBeat(startBeat, flyBeats);
|
flyPos = cond.GetPositionFromBeat(startBeat, flyBeats);
|
||||||
transform.position = curve.GetPoint(flyPos);
|
transform.position = curve.GetPoint(flyPos);
|
||||||
|
|
||||||
}
|
}
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
|
@ -38,16 +38,26 @@ namespace HeavenStudio.Games.Scripts_AirRally
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
|
//flyBeats = isReturning ? 1.2f : 1.2f;
|
||||||
float flyPos = cond.GetPositionFromBeat(startBeat, flyBeats);
|
float flyPos = cond.GetPositionFromBeat(startBeat, flyBeats);
|
||||||
flyBeats = isReturning ? 1.2f : 1.2f;
|
|
||||||
if (flyPos <= 1f)
|
if (flyPos <= 1f)
|
||||||
{
|
{
|
||||||
if (!miss)
|
if (!miss)
|
||||||
{
|
{
|
||||||
flyPos *= 0.95f;
|
flyPos *= .8f;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector3 lastPos = transform.position;
|
Vector3 lastPos = transform.position;
|
||||||
Vector3 nextPos = curve.GetPoint(flyPos);
|
nextPos = curve.GetPoint(flyPos);
|
||||||
|
curve.KeyPoints[0].transform.position = new Vector3(game.holderPos.position.x, game.holderPos.position.y, game.wayPointZForForth);
|
||||||
|
if (isReturning)
|
||||||
|
{
|
||||||
|
curve.transform.localScale = new Vector3(-1, 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
curve.transform.localScale = new Vector3(1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
if (flyType)
|
if (flyType)
|
||||||
{
|
{
|
||||||
|
@ -57,7 +67,8 @@ namespace HeavenStudio.Games.Scripts_AirRally
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(!isReturning)
|
|
||||||
|
if (!isReturning)
|
||||||
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (360f * Time.deltaTime));
|
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (360f * Time.deltaTime));
|
||||||
else
|
else
|
||||||
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (-360f * Time.deltaTime));
|
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (-360f * Time.deltaTime));
|
||||||
|
@ -65,10 +76,10 @@ namespace HeavenStudio.Games.Scripts_AirRally
|
||||||
|
|
||||||
transform.position = nextPos;
|
transform.position = nextPos;
|
||||||
}
|
}
|
||||||
else
|
//else
|
||||||
{
|
//{
|
||||||
transform.position = curve.GetPoint(miss ? 1f : 0.95f);
|
// transform.position = curve.GetPoint(miss ? 1f : 0.95f);
|
||||||
}
|
//}
|
||||||
|
|
||||||
//if (flyPos > 1f)
|
//if (flyPos > 1f)
|
||||||
//{
|
//{
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
@ -19,6 +20,17 @@ namespace HeavenStudio.InputSystem
|
||||||
"DualSense"
|
"DualSense"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int[] dsPlayerColours = new[]
|
||||||
|
{
|
||||||
|
0xd41817,
|
||||||
|
0x04d4fa,
|
||||||
|
0x05ff08,
|
||||||
|
0xffdd01,
|
||||||
|
0xe906c9,
|
||||||
|
0xcc6020,
|
||||||
|
0x888888
|
||||||
|
};
|
||||||
|
|
||||||
//TODO: see if single joy-con mappings differ from a normal pad (they don't!)
|
//TODO: see if single joy-con mappings differ from a normal pad (they don't!)
|
||||||
int[] mappings = new[]
|
int[] mappings = new[]
|
||||||
{
|
{
|
||||||
|
@ -68,6 +80,7 @@ namespace HeavenStudio.InputSystem
|
||||||
int joyshockHandle;
|
int joyshockHandle;
|
||||||
int type;
|
int type;
|
||||||
int splitType;
|
int splitType;
|
||||||
|
int lightbarColour;
|
||||||
string joyshockName;
|
string joyshockName;
|
||||||
|
|
||||||
//buttons, sticks, triggers
|
//buttons, sticks, triggers
|
||||||
|
@ -107,6 +120,14 @@ namespace HeavenStudio.InputSystem
|
||||||
joyBtStateLast = joyBtStateCurrent;
|
joyBtStateLast = joyBtStateCurrent;
|
||||||
joyBtStateCurrent = JslGetSimpleState(joyshockHandle);
|
joyBtStateCurrent = JslGetSimpleState(joyshockHandle);
|
||||||
|
|
||||||
|
//gyro and accelerometer
|
||||||
|
joyImuStateLast = joyImuStateCurrent;
|
||||||
|
joyImuStateCurrent = JslGetIMUState(joyshockHandle);
|
||||||
|
|
||||||
|
//touchpad
|
||||||
|
joyTouchStateLast = joyTouchStateCurrent;
|
||||||
|
joyTouchStateCurrent = JslGetTouchState(joyshockHandle);
|
||||||
|
|
||||||
//stick direction state
|
//stick direction state
|
||||||
//split controllers will need to be rotated to compensate
|
//split controllers will need to be rotated to compensate
|
||||||
//left rotates counterclockwise, right rotates clockwise, all by 90 degrees
|
//left rotates counterclockwise, right rotates clockwise, all by 90 degrees
|
||||||
|
@ -154,7 +175,7 @@ namespace HeavenStudio.InputSystem
|
||||||
|
|
||||||
public override InputFeatures GetFeatures()
|
public override InputFeatures GetFeatures()
|
||||||
{
|
{
|
||||||
InputFeatures features = InputFeatures.Style_Pad | InputFeatures.Style_Baton;
|
InputFeatures features = InputFeatures.Readable_MotionSensor | InputFeatures.Extra_Rumble | InputFeatures.Style_Pad | InputFeatures.Style_Baton;
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case TypeJoyConLeft:
|
case TypeJoyConLeft:
|
||||||
|
@ -173,7 +194,6 @@ namespace HeavenStudio.InputSystem
|
||||||
features |= InputFeatures.Readable_AnalogueTriggers | InputFeatures.Readable_Pointer | InputFeatures.Writable_PlayerLED | InputFeatures.Writable_LightBar;
|
features |= InputFeatures.Readable_AnalogueTriggers | InputFeatures.Readable_Pointer | InputFeatures.Writable_PlayerLED | InputFeatures.Writable_LightBar;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
features |= InputFeatures.Readable_MotionSensor | InputFeatures.Extra_Rumble | InputFeatures.Style_Pad | InputFeatures.Style_Baton | InputFeatures.Style_Touch;
|
|
||||||
return features;
|
return features;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -360,6 +380,7 @@ namespace HeavenStudio.InputSystem
|
||||||
{
|
{
|
||||||
this.playerNum = null;
|
this.playerNum = null;
|
||||||
JslSetPlayerNumber(joyshockHandle, 0);
|
JslSetPlayerNumber(joyshockHandle, 0);
|
||||||
|
JslSetLightColour(joyshockHandle, 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.playerNum = playerNum;
|
this.playerNum = playerNum;
|
||||||
|
@ -372,6 +393,8 @@ namespace HeavenStudio.InputSystem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
JslSetPlayerNumber(joyshockHandle, ledMask);
|
JslSetPlayerNumber(joyshockHandle, ledMask);
|
||||||
|
lightbarColour = GetLightbarColourForPlayer((int) this.playerNum);
|
||||||
|
JslSetLightColour(joyshockHandle, lightbarColour);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override int? GetPlayer()
|
public override int? GetPlayer()
|
||||||
|
@ -379,6 +402,61 @@ namespace HeavenStudio.InputSystem
|
||||||
return this.playerNum;
|
return this.playerNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Color GetBodyColor()
|
||||||
|
{
|
||||||
|
if (otherHalf != null)
|
||||||
|
{
|
||||||
|
// gets the colour of the right controller if is split
|
||||||
|
return BitwiseUtils.IntToRgb(splitType == SplitRight ? JslGetControllerColour(joyshockHandle) : JslGetControllerColour(GetOtherHalf().GetHandle()));
|
||||||
|
}
|
||||||
|
return BitwiseUtils.IntToRgb(JslGetControllerColour(joyshockHandle));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color GetButtonColor()
|
||||||
|
{
|
||||||
|
return BitwiseUtils.IntToRgb(JslGetControllerButtonColour(joyshockHandle));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color GetLeftGripColor()
|
||||||
|
{
|
||||||
|
if (otherHalf != null)
|
||||||
|
{
|
||||||
|
return BitwiseUtils.IntToRgb(splitType == SplitLeft ? JslGetControllerColour(joyshockHandle) : JslGetControllerColour(GetOtherHalf().GetHandle()));
|
||||||
|
}
|
||||||
|
return BitwiseUtils.IntToRgb(JslGetControllerLeftGripColour(joyshockHandle));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color GetRightGripColor()
|
||||||
|
{
|
||||||
|
if (otherHalf != null)
|
||||||
|
{
|
||||||
|
return BitwiseUtils.IntToRgb(splitType == SplitRight ? JslGetControllerColour(joyshockHandle) : JslGetControllerColour(GetOtherHalf().GetHandle()));
|
||||||
|
}
|
||||||
|
return BitwiseUtils.IntToRgb(JslGetControllerRightGripColour(joyshockHandle));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color GetLightbarColour()
|
||||||
|
{
|
||||||
|
return BitwiseUtils.IntToRgb(lightbarColour);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetLightbarColour(Color color)
|
||||||
|
{
|
||||||
|
lightbarColour = BitwiseUtils.RgbToInt(color);
|
||||||
|
JslSetLightColour(joyshockHandle, lightbarColour);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int GetLightbarColourForPlayer(int playerNum = 0)
|
||||||
|
{
|
||||||
|
if (playerNum < 0)
|
||||||
|
{
|
||||||
|
return dsPlayerColours[dsPlayerColours.Length - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
playerNum = Math.Min(playerNum, dsPlayerColours.Length - 1);
|
||||||
|
return dsPlayerColours[playerNum];
|
||||||
|
}
|
||||||
|
|
||||||
public int GetHandle()
|
public int GetHandle()
|
||||||
{
|
{
|
||||||
return joyshockHandle;
|
return joyshockHandle;
|
||||||
|
|
|
@ -64,31 +64,31 @@ namespace HeavenStudio.InputSystem
|
||||||
public enum InputFeatures
|
public enum InputFeatures
|
||||||
{
|
{
|
||||||
//readable properties
|
//readable properties
|
||||||
Readable_ShellColour,
|
Readable_ShellColour = 1 << 0,
|
||||||
Readable_ButtonColour,
|
Readable_ButtonColour = 1 << 1,
|
||||||
Readable_LeftGripColour,
|
Readable_LeftGripColour = 1 << 2,
|
||||||
Readable_RightGripColour,
|
Readable_RightGripColour = 1 << 3,
|
||||||
Readable_AnalogueTriggers,
|
Readable_AnalogueTriggers = 1 << 4,
|
||||||
Readable_StringInput,
|
Readable_StringInput = 1 << 5,
|
||||||
Readable_Pointer,
|
Readable_Pointer = 1 << 6,
|
||||||
Readable_MotionSensor,
|
Readable_MotionSensor = 1 << 7,
|
||||||
|
|
||||||
//writable properties
|
//writable properties
|
||||||
Writable_PlayerLED,
|
Writable_PlayerLED = 1 << 8,
|
||||||
Writable_LightBar,
|
Writable_LightBar = 1 << 9,
|
||||||
Writable_Chroma,
|
Writable_Chroma = 1 << 10,
|
||||||
Writable_Speaker,
|
Writable_Speaker = 1 << 11,
|
||||||
|
|
||||||
//other / "special" properties
|
//other / "special" properties
|
||||||
Extra_SplitControllerLeft,
|
Extra_SplitControllerLeft = 1 << 12,
|
||||||
Extra_SplitControllerRight,
|
Extra_SplitControllerRight = 1 << 13,
|
||||||
Extra_Rumble,
|
Extra_Rumble = 1 << 14,
|
||||||
Extra_HDRumble,
|
Extra_HDRumble = 1 << 15,
|
||||||
|
|
||||||
//supported control styles
|
//supported control styles
|
||||||
Style_Pad,
|
Style_Pad = 1 << 16,
|
||||||
Style_Baton,
|
Style_Baton = 1 << 17,
|
||||||
Style_Touch
|
Style_Touch = 1 << 18,
|
||||||
};
|
};
|
||||||
|
|
||||||
//Following enums are specific to Heaven Studio, can be removed in other applications
|
//Following enums are specific to Heaven Studio, can be removed in other applications
|
||||||
|
|
|
@ -40,36 +40,8 @@ namespace HeavenStudio.Editor
|
||||||
{
|
{
|
||||||
InputController lastController = PlayerInput.GetInputController(1);
|
InputController lastController = PlayerInput.GetInputController(1);
|
||||||
InputController newController = PlayerInput.GetInputControllers()[controllersDropdown.value];
|
InputController newController = PlayerInput.GetInputControllers()[controllersDropdown.value];
|
||||||
lastController.SetPlayer(-1);
|
|
||||||
newController.SetPlayer(1);
|
|
||||||
|
|
||||||
if (typeof(InputJoyshock) == lastController.GetType()) {
|
|
||||||
InputJoyshock con = (InputJoyshock) lastController;
|
|
||||||
con.UnAssignOtherHalf();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof(InputJoyshock) == newController.GetType()) {
|
|
||||||
InputJoyshock con = (InputJoyshock) newController;
|
|
||||||
StartCoroutine(SelectionVibrate(con));
|
|
||||||
con.UnAssignOtherHalf();
|
|
||||||
}
|
|
||||||
|
|
||||||
currentControllerLabel.text = "Current Controller: " + newController.GetDeviceName();
|
|
||||||
ShowControllerIcon(newController);
|
|
||||||
|
|
||||||
InputController.InputFeatures features = newController.GetFeatures();
|
|
||||||
if (features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft) || features.HasFlag(InputController.InputFeatures.Extra_SplitControllerRight))
|
|
||||||
{
|
|
||||||
pairSelectLR = !features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft);
|
|
||||||
pairSearchItem.SetActive(true);
|
|
||||||
StartPairSearch();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pairSearchItem.SetActive(false);
|
|
||||||
CancelPairSearch();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
AssignController(newController, lastController);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,38 +51,11 @@ namespace HeavenStudio.Editor
|
||||||
foreach (var controller in controllers) {
|
foreach (var controller in controllers) {
|
||||||
if (controller.GetLastButtonDown() > 0 || controller.GetLastKeyDown() > 0) {
|
if (controller.GetLastButtonDown() > 0 || controller.GetLastKeyDown() > 0) {
|
||||||
InputController lastController = PlayerInput.GetInputController(1);
|
InputController lastController = PlayerInput.GetInputController(1);
|
||||||
lastController.SetPlayer(-1);
|
|
||||||
controller.SetPlayer(1);
|
|
||||||
isAutoSearching = false;
|
isAutoSearching = false;
|
||||||
autoSearchLabel.SetActive(false);
|
autoSearchLabel.SetActive(false);
|
||||||
|
AssignController(controller, lastController);
|
||||||
|
|
||||||
controllersDropdown.value = PlayerInput.GetInputControllerId(1);
|
controllersDropdown.value = PlayerInput.GetInputControllerId(1);
|
||||||
|
|
||||||
if (typeof(InputJoyshock) == lastController.GetType()) {
|
|
||||||
((InputJoyshock)lastController).UnAssignOtherHalf();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof(InputJoyshock) == controller.GetType()) {
|
|
||||||
InputJoyshock con = (InputJoyshock) controller;
|
|
||||||
StartCoroutine(SelectionVibrate(con));
|
|
||||||
con.UnAssignOtherHalf();
|
|
||||||
}
|
|
||||||
|
|
||||||
currentControllerLabel.text = "Current Controller: " + controller.GetDeviceName();
|
|
||||||
ShowControllerIcon(controller);
|
|
||||||
|
|
||||||
InputController.InputFeatures features = controller.GetFeatures();
|
|
||||||
if (features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft) || features.HasFlag(InputController.InputFeatures.Extra_SplitControllerRight))
|
|
||||||
{
|
|
||||||
pairSelectLR = !features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft);
|
|
||||||
pairSearchItem.SetActive(true);
|
|
||||||
StartPairSearch();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pairSearchItem.SetActive(false);
|
|
||||||
CancelPairSearch();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -127,7 +72,7 @@ namespace HeavenStudio.Editor
|
||||||
isPairSearching = false;
|
isPairSearching = false;
|
||||||
pairSearchLabel.SetActive(false);
|
pairSearchLabel.SetActive(false);
|
||||||
currentControllerLabel.text = "Current Controller: " + controller.GetDeviceName();
|
currentControllerLabel.text = "Current Controller: " + controller.GetDeviceName();
|
||||||
pairingLabel.text = "Joy-Con (L / R) Selected\nPairing Successful!";
|
pairingLabel.text = "Joy-Con Pair Selected\nPairing Successful!";
|
||||||
ShowControllerIcon(controller);
|
ShowControllerIcon(controller);
|
||||||
|
|
||||||
StartCoroutine(SelectionVibrate(con));
|
StartCoroutine(SelectionVibrate(con));
|
||||||
|
@ -137,6 +82,46 @@ namespace HeavenStudio.Editor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AssignController(InputController newController, InputController lastController)
|
||||||
|
{
|
||||||
|
lastController.SetPlayer(-1);
|
||||||
|
newController.SetPlayer(1);
|
||||||
|
|
||||||
|
if (typeof(InputJoyshock) == lastController.GetType()) {
|
||||||
|
InputJoyshock con = (InputJoyshock) lastController;
|
||||||
|
con.UnAssignOtherHalf();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof(InputJoyshock) == newController.GetType()) {
|
||||||
|
InputJoyshock con = (InputJoyshock) newController;
|
||||||
|
StartCoroutine(SelectionVibrate(con));
|
||||||
|
con.UnAssignOtherHalf();
|
||||||
|
}
|
||||||
|
|
||||||
|
currentControllerLabel.text = "Current Controller: " + newController.GetDeviceName();
|
||||||
|
ShowControllerIcon(newController);
|
||||||
|
|
||||||
|
InputController.InputFeatures features = newController.GetFeatures();
|
||||||
|
if (features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft)) {
|
||||||
|
pairingLabel.text = "Joy-Con (L) Selected\nPress A to pair with Joy-Con (R)";
|
||||||
|
|
||||||
|
pairSelectLR = !features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft);
|
||||||
|
pairSearchItem.SetActive(true);
|
||||||
|
StartPairSearch();
|
||||||
|
}
|
||||||
|
else if (features.HasFlag(InputController.InputFeatures.Extra_SplitControllerRight)) {
|
||||||
|
pairingLabel.text = "Joy-Con (R) Selected\nPress A to pair with Joy-Con (L)";
|
||||||
|
|
||||||
|
pairSelectLR = !features.HasFlag(InputController.InputFeatures.Extra_SplitControllerLeft);
|
||||||
|
pairSearchItem.SetActive(true);
|
||||||
|
StartPairSearch();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CancelPairSearch();
|
||||||
|
pairSearchItem.SetActive(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void StartAutoSearch() {
|
public void StartAutoSearch() {
|
||||||
if (!isPairSearching)
|
if (!isPairSearching)
|
||||||
{
|
{
|
||||||
|
@ -149,7 +134,6 @@ namespace HeavenStudio.Editor
|
||||||
if (!isAutoSearching) {
|
if (!isAutoSearching) {
|
||||||
pairSearchLabel.SetActive(true);
|
pairSearchLabel.SetActive(true);
|
||||||
isPairSearching = true;
|
isPairSearching = true;
|
||||||
pairingLabel.text = "Joy-Con (L / R) Selected\nPairing Second Joy-Con...";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,7 +141,7 @@ namespace HeavenStudio.Editor
|
||||||
if (isPairSearching) {
|
if (isPairSearching) {
|
||||||
pairSearchLabel.SetActive(false);
|
pairSearchLabel.SetActive(false);
|
||||||
isPairSearching = false;
|
isPairSearching = false;
|
||||||
pairingLabel.text = "Joy-Con (L / R) Selected\nPairing was cancelled.";
|
pairingLabel.text = "Joy-Con Selected\nPairing was cancelled.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,6 +163,7 @@ namespace HeavenStudio.Editor
|
||||||
optionData.text = vals[i].GetDeviceName();
|
optionData.text = vals[i].GetDeviceName();
|
||||||
dropDownData.Add(optionData);
|
dropDownData.Add(optionData);
|
||||||
}
|
}
|
||||||
|
controllersDropdown.ClearOptions();
|
||||||
controllersDropdown.AddOptions(dropDownData);
|
controllersDropdown.AddOptions(dropDownData);
|
||||||
controllersDropdown.value = 0;
|
controllersDropdown.value = 0;
|
||||||
}
|
}
|
||||||
|
@ -207,55 +192,56 @@ namespace HeavenStudio.Editor
|
||||||
case "Joy-Con (L)":
|
case "Joy-Con (L)":
|
||||||
case "Joy-Con (R)":
|
case "Joy-Con (R)":
|
||||||
InputJoyshock joy = (InputJoyshock) controller;
|
InputJoyshock joy = (InputJoyshock) controller;
|
||||||
controllerMat.SetColor("_BodyColor", BitwiseUtils.IntToRgb(JslGetControllerColour(joy.GetHandle())));
|
controllerMat.SetColor("_BodyColor", joy.GetBodyColor());
|
||||||
controllerMat.SetColor("_BtnColor", BitwiseUtils.IntToRgb(JslGetControllerButtonColour(joy.GetHandle())));
|
controllerMat.SetColor("_BtnColor", joy.GetButtonColor());
|
||||||
controllerMat.SetColor("_LGripColor", ColorUtility.TryParseHtmlString("#2F353A", out colour) ? colour : Color.white);
|
controllerMat.SetColor("_LGripColor", ColorUtility.TryParseHtmlString("#2F353A", out colour) ? colour : Color.white);
|
||||||
controllerMat.SetColor("_RGripColor", ColorUtility.TryParseHtmlString("#2F353A", out colour) ? colour : Color.white);
|
controllerMat.SetColor("_RGripColor", ColorUtility.TryParseHtmlString("#2F353A", out colour) ? colour : Color.white);
|
||||||
break;
|
break;
|
||||||
case "Joy-Con Pair":
|
case "Joy-Con Pair":
|
||||||
joy = (InputJoyshock) controller;
|
joy = (InputJoyshock) controller;
|
||||||
int joySide = JslGetControllerSplitType(joy.GetHandle());
|
int joySide = JslGetControllerSplitType(joy.GetHandle());
|
||||||
controllerMat.SetColor("_BodyColor", BitwiseUtils.IntToRgb(joySide == SplitRight ? JslGetControllerButtonColour(joy.GetHandle()) : JslGetControllerButtonColour(joy.GetOtherHalf().GetHandle())));
|
controllerMat.SetColor("_BodyColor", joySide == SplitRight ? joy.GetButtonColor() : joy.GetOtherHalf().GetButtonColor());
|
||||||
controllerMat.SetColor("_BtnColor", BitwiseUtils.IntToRgb(joySide == SplitLeft ? JslGetControllerButtonColour(joy.GetHandle()) : JslGetControllerButtonColour(joy.GetOtherHalf().GetHandle())));
|
controllerMat.SetColor("_BtnColor", joySide == SplitLeft ? joy.GetButtonColor() : joy.GetOtherHalf().GetButtonColor());
|
||||||
controllerMat.SetColor("_LGripColor", BitwiseUtils.IntToRgb(joySide == SplitLeft ? JslGetControllerColour(joy.GetHandle()) : JslGetControllerColour(joy.GetOtherHalf().GetHandle())));
|
controllerMat.SetColor("_LGripColor", joy.GetLeftGripColor());
|
||||||
controllerMat.SetColor("_RGripColor", BitwiseUtils.IntToRgb(joySide == SplitRight ? JslGetControllerColour(joy.GetHandle()) : JslGetControllerColour(joy.GetOtherHalf().GetHandle())));
|
controllerMat.SetColor("_RGripColor", joy.GetRightGripColor());
|
||||||
break;
|
break;
|
||||||
case "Pro Controller":
|
case "Pro Controller":
|
||||||
joy = (InputJoyshock) controller;
|
joy = (InputJoyshock) controller;
|
||||||
controllerMat.SetColor("_BodyColor", BitwiseUtils.IntToRgb(JslGetControllerColour(joy.GetHandle())));
|
controllerMat.SetColor("_BodyColor", joy.GetBodyColor());
|
||||||
controllerMat.SetColor("_BtnColor", BitwiseUtils.IntToRgb(JslGetControllerButtonColour(joy.GetHandle())));
|
controllerMat.SetColor("_BtnColor", joy.GetButtonColor());
|
||||||
controllerMat.SetColor("_LGripColor", BitwiseUtils.IntToRgb(JslGetControllerLeftGripColour(joy.GetHandle())));
|
controllerMat.SetColor("_LGripColor", joy.GetLeftGripColor());
|
||||||
controllerMat.SetColor("_RGripColor", BitwiseUtils.IntToRgb(JslGetControllerRightGripColour(joy.GetHandle())));
|
controllerMat.SetColor("_RGripColor", joy.GetRightGripColor());
|
||||||
break;
|
break;
|
||||||
//TODO: dualshock 4 and dualsense lightbar colour support
|
|
||||||
case "DualShock 4":
|
case "DualShock 4":
|
||||||
|
joy = (InputJoyshock) controller;
|
||||||
controllerMat.SetColor("_BodyColor", ColorUtility.TryParseHtmlString("#E1E2E4", out colour) ? colour : Color.white);
|
controllerMat.SetColor("_BodyColor", ColorUtility.TryParseHtmlString("#E1E2E4", out colour) ? colour : Color.white);
|
||||||
controllerMat.SetColor("_BtnColor", ColorUtility.TryParseHtmlString("#414246", out colour) ? colour : Color.white);
|
controllerMat.SetColor("_BtnColor", ColorUtility.TryParseHtmlString("#414246", out colour) ? colour : Color.white);
|
||||||
controllerMat.SetColor("_LGripColor", ColorUtility.TryParseHtmlString("#1E6EFA", out colour) ? colour : Color.white);
|
controllerMat.SetColor("_LGripColor", joy.GetLightbarColour());
|
||||||
controllerMat.SetColor("_RGripColor", ColorUtility.TryParseHtmlString("#1E6EFA", out colour) ? colour : Color.white);
|
controllerMat.SetColor("_RGripColor", joy.GetLightbarColour());
|
||||||
break;
|
break;
|
||||||
case "DualSense":
|
case "DualSense":
|
||||||
|
joy = (InputJoyshock) controller;
|
||||||
controllerMat.SetColor("_BodyColor", ColorUtility.TryParseHtmlString("#DEE0EB", out colour) ? colour : Color.white);
|
controllerMat.SetColor("_BodyColor", ColorUtility.TryParseHtmlString("#DEE0EB", out colour) ? colour : Color.white);
|
||||||
controllerMat.SetColor("_BtnColor", ColorUtility.TryParseHtmlString("#272D39", out colour) ? colour : Color.white);
|
controllerMat.SetColor("_BtnColor", ColorUtility.TryParseHtmlString("#272D39", out colour) ? colour : Color.white);
|
||||||
controllerMat.SetColor("_LGripColor", ColorUtility.TryParseHtmlString("#1E6EFA", out colour) ? colour : Color.white);
|
controllerMat.SetColor("_LGripColor", joy.GetLightbarColour());
|
||||||
controllerMat.SetColor("_RGripColor", ColorUtility.TryParseHtmlString("#1E6EFA", out colour) ? colour : Color.white);
|
controllerMat.SetColor("_RGripColor", joy.GetLightbarColour());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
controllerMat.SetColor("_BodyColor", new Color(1, 1, 1, 1));
|
controllerMat.SetColor("_BodyColor", Color.white);
|
||||||
controllerMat.SetColor("_BtnColor", new Color(1, 1, 1, 1));
|
controllerMat.SetColor("_BtnColor", Color.white);
|
||||||
controllerMat.SetColor("_LGripColor", new Color(1, 1, 1, 1));
|
controllerMat.SetColor("_LGripColor", Color.white);
|
||||||
controllerMat.SetColor("_RGripColor", new Color(1, 1, 1, 1));
|
controllerMat.SetColor("_RGripColor", Color.white);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator SelectionVibrate(InputJoyshock controller)
|
IEnumerator SelectionVibrate(InputJoyshock controller)
|
||||||
{
|
{
|
||||||
JslSetRumbleFrequency(controller.GetHandle(), 0.4f, 0.3f, 80f, 160f);
|
JslSetRumbleFrequency(controller.GetHandle(), 0.4f, 0.4f, 80f, 160f);
|
||||||
yield return new WaitForSeconds(0.15f);
|
yield return new WaitForSeconds(0.15f);
|
||||||
JslSetRumbleFrequency(controller.GetHandle(), 0f, 0f, 0f, 0f);
|
JslSetRumbleFrequency(controller.GetHandle(), 0f, 0f, 0f, 0f);
|
||||||
yield return new WaitForSeconds(0.05f);
|
yield return new WaitForSeconds(0.05f);
|
||||||
JslSetRumbleFrequency(controller.GetHandle(), 0.45f, 0.45f, 160f, 320f);
|
JslSetRumbleFrequency(controller.GetHandle(), 0.5f, 0.5f, 160f, 320f);
|
||||||
yield return new WaitForSeconds(0.25f);
|
yield return new WaitForSeconds(0.25f);
|
||||||
JslSetRumbleFrequency(controller.GetHandle(), 0f, 0f, 0f, 0f);
|
JslSetRumbleFrequency(controller.GetHandle(), 0f, 0f, 0f, 0f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,5 +59,13 @@ namespace HeavenStudio.Util
|
||||||
var blue = ( value >> 0 ) & 255;
|
var blue = ( value >> 0 ) & 255;
|
||||||
return new Color(red/255f, green/255f, blue/255f);
|
return new Color(red/255f, green/255f, blue/255f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int RgbToInt(Color color)
|
||||||
|
{
|
||||||
|
var red = (int)(color.r * 255);
|
||||||
|
var green = (int)(color.g * 255);
|
||||||
|
var blue = (int)(color.b * 255);
|
||||||
|
return (red << 16) | (green << 8) | blue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue