Netcode Bootstrap
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
namespace Rukhanka.Samples
|
||||
{
|
||||
class UIButtonHandler: MonoBehaviour
|
||||
{
|
||||
[Serializable]
|
||||
public struct ShowcaseData
|
||||
{
|
||||
public Button UIBtn;
|
||||
public GameObject UIRoot;
|
||||
public Transform vCam;
|
||||
}
|
||||
public ShowcaseData[] showcases;
|
||||
|
||||
Camera cam;
|
||||
Transform targetCamera;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Start()
|
||||
{
|
||||
for (int i = 0; i < showcases.Length; ++i)
|
||||
{
|
||||
var sc = showcases[i];
|
||||
var li = i;
|
||||
sc.UIBtn.onClick.AddListener(() => OnBtnClick(li));
|
||||
}
|
||||
|
||||
OnBtnClick(0);
|
||||
showcases[0].UIBtn.Select();
|
||||
|
||||
cam = Camera.main;
|
||||
targetCamera = showcases[0].vCam;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
IEnumerator DelayedUISwitch(ShowcaseData sc, bool b)
|
||||
{
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
sc.UIRoot.SetActive(b);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Update()
|
||||
{
|
||||
var dp = targetCamera.position - cam.transform.position;
|
||||
if (dp.magnitude < 0.1f)
|
||||
return;
|
||||
|
||||
cam.transform.position += dp.normalized * Mathf.Max(dp.magnitude, 2.0f) * Time.deltaTime * 1.5f;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void OnBtnClick(int idx)
|
||||
{
|
||||
for (int i = 0; i < showcases.Length; ++i)
|
||||
{
|
||||
var sc = showcases[i];
|
||||
var b = i == idx;
|
||||
if (b)
|
||||
targetCamera = sc.vCam;
|
||||
StartCoroutine(DelayedUISwitch(sc, b));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user