/// <summary> /// Платформа попала в триггер /// </summary> public void PlatformEnter(TouchPlatform touchPlatform) { if (_levelManager.DragPlatform != null) { ActivateGlow(); TouchPlatform = touchPlatform; } }
private void OnCollision(object sender, string tag) { switch (tag) { case "Player": TouchPlatform?.Invoke(this, EventArgs.Empty); break; case "Finish": LoseBall?.Invoke(this, EventArgs.Empty); break; } }
/// <summary> /// Создать платформу по списку координатам /// </summary> /// <param name="platformPoints">Координаты первой и второй точки платформы</param> public void CreatePlatform(IEnumerable <string> platformPoints) { var onePoint = _points.First(p => p.name.Equals(platformPoints.First())).transform; var twoPoint = _points.First(p => p.name.Equals(platformPoints.Last())).transform; var center = (onePoint.position + twoPoint.position) / 2.0f; var length = Vector3.Distance(onePoint.position, twoPoint.position); var isVertical = onePoint.position.y == twoPoint.position.y; var platform = TouchPlatform.Initialize( _platformModel, center, Quaternion.Euler(0, 0, isVertical ? 90 : 0), length, onePoint, twoPoint); }
/// <summary> /// Платформа вышла из триггера /// </summary> public void PlatformExit() { DeactivateGlow(); TouchPlatform = null; }
public void InvokeTouchPlatform(Transform trans, float offset) { TouchPlatform.Invoke(trans, offset); }