Ledger Nano X - The secure hardware wallet
SHARE
TWEET

Untitled

a guest Mar 28th, 2020 73 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using UnityStandardAssets.Characters.FirstPerson;
  6.  
  7. public class CharController : MonoBehaviour
  8. {
  9.     FirstPersonController fpsc;
  10.     int selectedBlock = 0;
  11.     int[] resources;
  12.     public Transform marker;
  13.     public LandscapeGenerator lg;
  14.     public Text hint;
  15.     public RectTransform qp;
  16.     public RectTransform ip;
  17.     public RectTransform selector;
  18.     Camera cam;
  19.     RaycastHit hit = new RaycastHit();
  20.     public Transform weaponContainer;
  21.     void Start()
  22.     {
  23.         fpsc = GetComponent<FirstPersonController>();
  24.         cam = GetComponentInChildren<Camera>();
  25.         resources = new int[5];
  26.     }
  27.     void Update()
  28.     {
  29.         if (Input.GetKeyDown(KeyCode.Tab))
  30.         {
  31.             bool target = !ip.gameObject.activeInHierarchy;
  32.             ip.gameObject.SetActive(target);
  33.             fpsc.enabled = !target;
  34.             Cursor.visible = target;
  35.  
  36.             if (target == true)
  37.             {
  38.                 // pause
  39.                 Time.timeScale = 0;
  40.                 Cursor.lockState = CursorLockMode.None;            
  41.             }
  42.             else
  43.             {
  44.                 Time.timeScale = 1;
  45.             }
  46.         }
  47.         if (ip.gameObject.activeInHierarchy)
  48.             return;
  49.  
  50.         // transform.forward, right, up
  51.         Physics.Raycast(
  52.             cam.transform.position, // коорд начала луча
  53.             cam.transform.forward, // вектор направления луча
  54.             out hit, //
  55.             5.0f // расстояние взаимодействия
  56.             );
  57.         if (hit.collider != null)
  58.         {
  59.             if (hit.collider.gameObject.
  60.                 GetComponent<Weapon>() != null)
  61.             {
  62.                 hint.text = hit.collider.gameObject.
  63.                     GetComponent<Weapon>().Name;
  64.             }
  65.             else
  66.             {
  67.                 hint.text = hit.collider.gameObject.name;
  68.                 hint.text += "\n" +
  69.                     hit.collider.gameObject.GetComponent<HP>()?.GetHealth();
  70.             }
  71.             if (hit.collider.tag == "Block")
  72.             {
  73.                 marker.GetComponent<MeshRenderer>().enabled = true;
  74.                 marker.position = hit.collider.transform.position
  75.                     + hit.normal;
  76.             }
  77.             else
  78.             {
  79.                 marker.GetComponent<MeshRenderer>().enabled = false;
  80.             }
  81.  
  82.         }
  83.         else
  84.         {
  85.             hint.text = "";
  86.             marker.GetComponent<MeshRenderer>().enabled = false;
  87.         }
  88.  
  89.         if (Input.GetKeyDown(KeyCode.E))
  90.         {
  91.            
  92.             // object -> bool => true
  93.             // null   -> bool => false
  94.             if (hit.collider && hit.collider.gameObject.GetComponent<Weapon>())
  95.             {
  96.                 DropWeapon();
  97.  
  98.                 hit.collider.transform.SetParent(weaponContainer);
  99.                 weaponContainer.GetChild(0).localPosition = Vector3.zero;
  100.                 weaponContainer.GetChild(0).localRotation = Quaternion.identity;
  101.                 weaponContainer.GetChild(0).GetComponent<Animator>().enabled = true;
  102.                 weaponContainer.GetChild(0).GetComponent<Rigidbody>().isKinematic = true;
  103.             }
  104.         }
  105.  
  106.         if (Input.GetMouseButtonDown(0) && weaponContainer.childCount > 0)
  107.         {
  108.             weaponContainer.GetChild(0)
  109.                 .GetComponent<Animator>()
  110.                 .SetTrigger("attack");
  111.             if (hit.collider != null
  112.                 && hit.collider.gameObject.GetComponent<HP>() != null)
  113.             {
  114.                 hit.collider.gameObject.GetComponent<HP>().GetDamage(
  115.                     weaponContainer.GetChild(0)
  116.                     .GetComponent<Weapon>().Damage);
  117.             }
  118.         }
  119.         if (Input.GetKeyDown(KeyCode.G))
  120.         {
  121.             DropWeapon();
  122.         }
  123.         if (Input.GetMouseButtonDown(1))
  124.         {
  125.             //build block
  126.             GameObject.Instantiate(
  127.                 lg.prefabs[selectedBlock],
  128.                 marker.position,
  129.                 marker.rotation
  130.                 );
  131.         }
  132.         if (Input.GetKeyDown(KeyCode.Alpha1)) selectedBlock = 0;
  133.         if (Input.GetKeyDown(KeyCode.Alpha2)) selectedBlock = 1;
  134.         if (Input.GetKeyDown(KeyCode.Alpha3)) selectedBlock = 2;
  135.         if (Input.GetKeyDown(KeyCode.Alpha4)) selectedBlock = 3;
  136.         if (Input.GetKeyDown(KeyCode.Alpha5)) selectedBlock = 4;
  137.         if (Input.GetAxis("Mouse ScrollWheel") != 0)
  138.         {
  139.             if (Input.GetAxis("Mouse ScrollWheel") > 0) selectedBlock++;
  140.             if (Input.GetAxis("Mouse ScrollWheel") < 0) selectedBlock--;
  141.  
  142.             int k = lg.prefabs.Length - 1;
  143.             selectedBlock = (k + selectedBlock) % k;
  144.         }
  145.  
  146.         selector.SetParent(qp.GetChild(6 + selectedBlock));
  147.         selector.localPosition = Vector3.zero;
  148.     }
  149.     void DropWeapon()
  150.     {
  151.         if (weaponContainer.childCount == 0)
  152.             return;
  153.  
  154.         weaponContainer.GetChild(0)
  155.             .GetComponent<Rigidbody>().isKinematic = false;
  156.         weaponContainer.GetChild(0).GetComponent<Animator>().enabled = false;
  157.         weaponContainer.GetChild(0).SetParent(null);
  158.     }
  159.     public void ChangeMats(int id, int value)
  160.     {
  161.         resources[id] += value;
  162.         qp.GetChild(id)
  163.             .GetComponentInChildren<Text>()
  164.             .text = resources[id].ToString();
  165.     }
  166. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top