[SerializeField] BoxCollider2D SpawnArea;
private void Randomposition()
{
Bounds bounds = SpawnArea.bounds;
float x =SpawnArea.transform.position.x+ Random.Range(bounds.min.x, bounds.max.x);
float y = SpawnArea.transform.position.y+Random.Range(bounds.min.y, bounds.max.y);
//перед изменением надо проверить на наличие змейки в точке
// не уверен что сработает , без должно тож работать
Vector3 newpos= new Vector3(Mathf.Round(x) + 0.5f, Mathf.Round(y) + 0.5f, -1f); //0.5 из за того что объект равен 1,1
if (IsGetSnake(newpos))
{
Randomposition();
return;
}
transform.position = newpos;
}
bool IsGetSnake(Vector3 pos)
{
bool shake = false;
if (Physics.Raycast(pos + Vector3.forward, -Vector3.forward, out RaycastHit hit))
{
if (hit.transform.tag == "snake")
{
shake = true;
}
}
return shake;
}
private void Start()
{
Randomposition();
}
private void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "snake")
{
Randomposition();
}
}
_playerRb.AddForce(_playerRb.transform.up * jumpHeight,ForceMode2D.Impulse);
using UnityEngine;
public class ParentUsing : MonoBehaviour
{
GameObject _targetGO;
bool UIVision;
void Update()
{
if (Input.GetKeyDown(KeyCode.E) && _targetGO != null)
{
ParentSet(_targetGO);
}
}
void ParentSet(GameObject newParentCursor)
{
gameObject.transform.parent = newParentCursor.transform;
}
void OnTriggerEnter(Collider other)
{
if (other.tag == "Cursor")
{
UIVision = true;
_targetGO= other.gameObject;
}
}
private void OnTriggerExit(Collider other)
{
if(_targetGO==other.gameObject)_targetGO = null;
}
}
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class Tester : MonoBehaviour
{
[SerializeField] List<Transform> _allPoint=new List<Transform>();
Transform _targetPos;
[SerializeField] Transform _playerPos;
[SerializeField] float _playerTargetDis;
[SerializeField] float _stopDistans;
[SerializeField] float _speed;
bool _isToPlayer;
private void Start()
{
SetAllPoint();
_targetPos = SelectRandom();
}
void SetAllPoint()
{
foreach (GameObject t in GameObject.FindGameObjectsWithTag("Point"))
{
_allPoint.Add(t.transform);
}
}
Transform SelectRandom()
{
int rand = Random.Range(0, (_allPoint.Count));
Debug.Log(rand);
return _allPoint[rand];
}
private void Update()
{
if (_isToPlayer) MoveToPlayer();
else MoveToPoint();
}
private void FixedUpdate()
{
_isToPlayer = SeePlayer();
}
void MoveToPoint()
{
transform.position = Vector3.MoveTowards(transform.position, _targetPos.position, _speed * Time.deltaTime); //заменить мб движение по нашмешу
if(Vector3.Distance(transform.position, _targetPos.position) < _stopDistans) _targetPos = SelectRandom();
}
void MoveToPlayer()
{
transform.position = Vector3.MoveTowards(transform.position, _playerPos.position, _speed * Time.deltaTime);
}
bool SeePlayer() //тут это от проекта зависит я сделал от дальности без поля зрения и тд
{
if (Vector3.Distance(transform.position, _playerPos.position) > _playerTargetDis) return false;
return true;
}
}
using UnityEngine;
public class Plus : MonoBehaviour
{
public string plusname;
public GameObject ReadyBall;
GameObject _colObj;
bool _IsCol;
private void Update()
{
if (_IsCol) Pluser();
}
void Pluser()
{
_colObj.SetActive(false);
GameObject newObj= Instantiate(ReadyBall, (_colObj.transform.position), Quaternion.identity);
newObj.transform.name = "CreateBy" + this.transform.name; ///For Debug
Destroy(_colObj);
Destroy(this.gameObject);
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.name == plusname&&!_IsCol)
{
_colObj = collision.gameObject;
_IsCol = true;
}
}
}
void Start() //добавляем в старт что бы все отнулялость при запуске сцены
{
SetScoreZero();
}
public void SetScoreZero()
{
MyScore = 0; //MyScore - это переменная где хранятся очки
}
using UnityEngine;
public class Player2dTest : MonoBehaviour
{
[SerializeField] Transform _wallLeft;
[SerializeField] Transform _wallRight;
Vector3 _targetTransf;
[SerializeField] float _speed = 5f;
Collider2D _myCol;
bool _isMove = true;
[SerializeField]bool _isWin;
private void Start()
{
_myCol= GetComponent<Collider2D>();
_targetTransf = _wallLeft.position;
}
private void Update()
{
if (_isMove)
{
_myCol.transform.position = Vector2.MoveTowards(_myCol.transform.position, _targetTransf, _speed * Time.deltaTime);
if (_myCol.transform.position == _targetTransf) NewTargetMove();
}
if (Input.GetKeyDown(KeyCode.Space))
{
EndGame();
}
}
void NewTargetMove()
{
if (_targetTransf != _wallRight.position) _targetTransf = _wallRight.position;
else _targetTransf = _wallLeft.position;
}
void EndGame()
{
_isMove = false;
if (_isWin) Debug.Log("You Win");
else Debug.Log("You Lose");
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag=="FirstPart") _isWin = true;
}
private void OnTriggerExit2D(Collider2D collision)
{
if(_isWin)_isWin = false;
}
}