Adding a RigidBody
If you want your object to react to physical collision with other objects and the game world, you’ll need to add a RigidBody component. A game object with a rigid body will be influenced by gravity and external forces.
From the Inspector, you can set whether you want discrete or continuous collision detection.
Continuous collision detection is used when dealing with fast moving objects. When using Discrete collision detection, some collisions may not be detected as they may go through the other object collider between the time another check is performed. By default, this is set to Discrete and you should leave it as continuous collision detection may really slow down your game.
You won’t need a rigidbody if your object’s collider is set as trigger.
Scripting
Every MonoBehaviour attached to the game object will listen for collision with other game objects in the world. The engine offers multiple methods, depending on the collision stage and type of collision.
For non-trigger collision, you’ll use OnCollisionEnter, OnCollisionExit, and OnCollisionStay.
OnCollisionEnter is called when the game object collider starts touching another game object with a collider and rigidbody attached. While colliding, OnCollisionStay will be called once per frame. Finally, when the collision stops, OnCollisionExit will be called.
Here’s an example:
As you can see, each of these methods supply a Collision object, which contains info about the contact points, the object it collided with, their relative velocity etc. We use it to print to the terminal information about the collision between the two game objects.
If you don’t need to access collision info, you can leave it empty and it will save some calculations.
Just note that, if the collision stops as a result of one of the objects being destroyed — using Destroy() — OnCollisionExit won’t be called.
If the other game object’s collider is set as Trigger, OnTriggerEnter, OnTriggerStay, and OnTriggerExit will be used instead. They work roughly the same way, but supply the Collider object directly instead of giving a Collision object:
As before, if you don’t need info about the other collider, you can leave it empty and speed things up a bit.
Just remember that, for trigger collision event to be triggered, one of the two colliders needs to have a rigid body attached.
When dealing with collisions, it’s useful to set different tags for the game objects in your game world. This way, you can quickly determine how to react with different types of collisions in your game, whether it’s a collectable, an enemy or anything else:
Как инвестировать в венчурный фонд
Инвестиции в венчурный фонд подразумевают несколько способов вложения денег:
- краудинвестинговые платформы. Инвестор будет получать роялти, а также вернет вложенные деньги с процентами. Этот вариант подходит начинающим вкладчикам, которые хотят вложить немного, но в как можно большее число проектов;
- клуб инвесторов. Здесь все просто: вы платите комиссию клубу, который находит для вас проекты и организует их;
- напрямую вложить деньги в венчурный фонд. Здесь высокий порог вхождения: если у вас нет $ 500 тысяч, попасть в фонд не представляется возможным. Помимо этого, большинство фондов работает только с проверенными инвесторами;
- самый дорогой, но и самый прибыльный вариант – создать собственный венчурный фонд. Затраты большие – около 10 млн долларов, однако прибыль будет еще больше, если организация найдет хорошие и прибыльные стартапы.
Открыть свой инвестиционный фонд в российских условиях – стоит ли играть по правилам
Несмотря на то что, новейшая история России и ее экономики насчитывает всего четверть века, однако рынок финансовых услуг и инвестирования успел пережить свои феерические взлеты и не менее драматические падения. Стоит только вспомнить чековые фонды: «Хопер –инвест» , МММ и прочие экстремальные вещи.
В современном состоянии рынок инвестиционных фондов в России более или менее соответствует европейским стандартам, правовые нормы и процедуры отработаны и существует определенная практика взаимодействия между владельцами фондов и всеми социальными и правовыми институтами.
Сама процедура создания инвестиционного фонда, исходя даже из российских реалий, достаточно простая и требует от учредителей лишь тщательного подхода к оформлению юридических документов (без квалифицированных юристов не обойтись).
Прежде, чем подойти к формальной стороне дела, учредитель должен определиться с несколькими важными моментами:
- Цели создания фонда и сроки его существования
- Исходя из целей, определить для себя, какой будет основная стратегия фонда на рынке – например, краткосрочная или долгосрочная, рискованная или пассивная и т.п.
- После определения стратегии подбираются инструменты и формы работы с инвестиционным капиталом. Например, существуют различные типы фондов, ориентированные на определенные способы работы с активами: фонды акций, облигаций, индексные, недвижимости или венчурные.
- В российском законодательстве предусмотрено два основных вида инвестиционных фондов — Акционерный (см. Инвестиционные акционерные фонды: особенности деятельности) и Паевой. В первом случае — его организация и учреждение во многом схожа с учреждением обычной публичной (акционерной) компании, плюс к этому добавляются специфические требования по формированию инвестиционных структур, которые во многом аналогичны ПИФам.
Для целей инвестирования в условиях России пока что предпочтительнее остается форма инвестиционных фондов в виде ПИФов, поскольку учреждение АИФ как публичной компании намного сложнее и дороже при практически одинаковом эффекте получения прибыли.
Далее будет рассмотрен примерный алгоритм учреждения ПИФа с пошаговым объяснением.
Приложите силу в определенном направлении к игровому объекту в целом AddForce ()
Unity Scripting API:Rigidbody.AddForce ForceMode
Мы можем применить силу к объектам через скрипт C #
Конечно, направление силы в коде также может быть записано как
Примечание: Vector3 (0,10,0) нужно добавить новый, Vector3.up не добавляет
С единичным векторным кодом
ForceMode имеет четыре свойства:
a、Force: Добавить устойчивую силу в Rigidbody, затронутую Mass, написанную в интерфейсе Update ()
b、Acceleration: Добавить устойчивое ускорение Rigidbody, игнорируя влияние Mass, доступное в интерфейсе Start ()
c、Impulse: Немедленно добавить импульс в Rigidbody, на который влияет Mass, доступный в интерфейсе Start ()
d、VelocityChange: Немедленно добавьте скорость в Rigidbody, игнорируйте влияние Mass и запишите его в интерфейс Update ()
Независимо от других сил, принимая во внимание только гравитацию, сила, добавленная в Update, заключается не в том, что вызов Force для каждого кадра приведет к тому, что сила на объекте будет находиться в наложенном состоянии, а в соответствии с законом Ньютона, чтобы увидеть взаимосвязь между силой и силой тяжести объекта. Находится в равновесном состоянии, и другие ситуации также следуют закону Ньютона F-mg = ma. Однако сила, на которую гравитация не влияет, постоянно вызывается, и нет гравитационного баланса, который может только увеличивать и увеличивать силу на объекте, пока он не вылетит
Однако сила, на которую гравитация не влияет, постоянно вызывается, и нет гравитационного баланса, который может только увеличивать и увеличивать силу на объекте, пока он не вылетит.
Продукт очень прост технически
«Где-то на третей итерации ко мне подошел коллега-разработчик и так иронично сказал: «руками распределяешь небось». Блин, конечно руками, что остается. Он говорит: «давай я напишу тебе простенький скрипт, который будет рандомно пары разбивать». Сказано — сделано», — рассказывает Павел.
Продукт ушел от ручного перебора табличек, но по-настоящему сложных вещей в нем не появилось. Бот для мессенджера с набором сценариев и текстов. Бекенд, который по определенным параметрам матчит людей, присылает пару и сохраняет историю мэтчингов, чтобы не повторяться. Фронт со списком участников, рассылок, аналитикой по встречам — сколько назначено встреч, сколько людей реально встретились, как участники оценили встречу.
«Мы начали работать на Фейсбуке, поэтому делали бота для их мессенджера. Использовали ManyChat, она на тот момент инструмент тоже поддерживал только мессенджер Facebook. Плюс там удобный визуальный конструктор, чтобы создавать истории и писать сценарии не нужно было привлекать разработчика. Хоть он у нас был и помогал — многие эксперименты получалось проводить очень быстро. До сих некоторые вещи мы легко собираем через ManyChat и запускаем на аудиторию», — говорит Константин.
Rigidbody 2D Types
More than one Rigidbody 2D type? Are you sure? I knew it! Some witnesses saw something!
Let’s try to find out the version of the story of each Rigidbody 2D.
Dynamic Rigidbody 2D
It’s the most common and most performance-expensive type, because it interacts with everything and it’s designed to move under simulation. It interacts with all the body types.
If we want a normal object affected by physics, this is our body!
The ball in this example has a dynamic Rigidbody 2D and it can be moved by applying forces and it’s affected by gravity!
Static Rigidbody 2D
Opposite to dynamic, it’s designed to not move under simulation, Indeed it has infinite mass, heavy right? It only collides with dynamic Rigidbody 2D.
It is also the least resource-intensive body type to use.
You don’t really need to set the Rigidbody 2D for static objects, just the collider 2D is necessary to detect collisions, but if a static object needs to be moved or reconfigured at run time, it is faster to do so when it has its own Rigidbody 2D and this will be our body!
Let’s add a box with static Rigidbody2D, it will be an obstacle to overcome!
Kinematic Rigidbody 2D
Like the dynamic is designed to move under simulation, but only controlling it, it’s not affected by gravity and forces. It’s faster in terms of performance-expensive. It interacts only with dynamic body types.
If we want to move something not influenced by forces and gravity, remember it’s nature of interaction only with dynamic body types, this is our body!
What if we add a kinematic Rigidbody 2D instead of the static one to the box? In this way we can control its movement without the influence of gravity. It will become a perfect movement trap for a platform video game!
Актуальный бой: имитация эффекта взрыва гранаты AddExplosionForce ()
сила взрыва поплавка: взрывная сила
Vector3 ExplosionPosition: положение центра взрыва
взрыв поплавокРадиус: радиус взрыва
Поплавок вверх Модификатор: отрегулируйте положение, в котором появляется взрыв, чтобы он выглядел так, как будто объект поднят. По умолчанию направление силы от центра взрыва к центру масс твердого тела является линейным. Если модификатор upwardsModifier имеет ненулевое значение, направление будет изменено путем вычитания значения оси Y центральной точки. Например: если значение равно 2, то взрыв появляется на 2 единицы ниже центральной точки фактического местоположения. Используя этот параметр, вы можете легко заставить взрыв, казалось бы, выбросить объект в воздух, что зачастую более драматично, чем простая внешняя сила
Режим ForceMode: режим Force, как описано в пункте 2 выше.
Идея: силовое положение взрыва начинается с центра гранаты, поэтому силовое положение находится в центре гранаты;
Взрыв происходит мгновенно, а не непрерывно, поэтому он должен быть записан в интерфейсе Start ();
Режим силы взрыва должен быть мгновенной силой, а не непрерывной силой, поэтому режим силы должен быть Импульсным
Центр куба равен (0,0,5,0), а установленный нами центр взрыва также равен (0,0,5,0). Мы можем видеть, что взрыв в центре куба во время работы заставляет его взлететь вверх. Когда мы устанавливаем центр взрыва на (0,0,51,0), сила взрыва выше центра масс куба, и куб не может двигаться. В то же время мы также обнаружили, что окружающие объекты не могут двигаться из-за влияния центрального куба, потому что сила не передается окружающим объектам.
Во-вторых, компонент Коллайдер
Есть два способа изменить траекторию объекта, столкновения или кода. В приведенном выше примере нет столкновения, и сила не может быть передана, но мы не можем передать силу без столкновения? Да, тоже! Через код компонента Collider физического движка метод Physics.OverlapSphere (Vector3 position, float radius) возвращает объект с помощью Collider, нам нужно только пройти его и применить силу положения взрыва к их компоненту Rigidbody. Это, конечно, необходимо Только с компонентами коллайдера
Примечание: переменные определения типа компонента имеют метод GetComponent <> (), переменные типа объекта не имеют этого метода
Почему мне нужно определить, есть ли у меня компонент Rigidbody? Потому что только с этим компонентом объект может рассчитать силу. У Force есть место для назначения значений. Компонент коллайдера доступен для дополнительного расчета столкновений
Три, Raycast
Излучать лучи, обнаруживать объекты в пределах определенного диапазона и возвращаться к объекту
Vector3 origin: происхождение луча
Направление Vector3: направление луча
out RaycastHit hitinfo: вернуть обнаруженные объекты на расстоянии обнаружения
float maxDistance: максимальное расстояние обнаружения
В этом примере мы используем метод Physics.Raycast () для обнаружения объектов в радиусе 10 метров. Сначала мы определяем переменную типа RaycastHit для переноса объекта, возвращенного методом обнаружения.Когда мы нажимаем клавишу B, если расстояние меньше 5 м, к нему будет применена направленная вверх сила
Mesh Colliders
Mesh Colliders are a particular type of collider which uses an actual mesh for collision detection.
They are quite expensive as they compute collision against every face of the mesh, so depending on the complexity of your meshes they can add up quickly. For this reason, you should avoid using Mesh colliders if possible. If you really need to, you can supply a separate mesh to the component, which has the same shape and structure of the game object’s mesh but with fewer faces.
Normally, collisions between two mesh colliders are ignored. If you want to detect collisions between mesh colliders, you need to set them as Convex in the Inspector. In this case, you’ll need to supply a mesh with less than 255 faces.
Как это работает сейчас
Если мы говорим про профессиональные комьюнити, то у человека есть два способа присоединиться ко встречам:
Подключившись к боту, человек кратко отвечает на вопросы о себе. В конце каждой недели отмечает, участвует ли во встрече на следующей неделе, а в понедельник получает партнера для встречи и договаривается о времени. Завершается неделя кратким опросом, и цикл повторяется снова. Участник может поставить встречи на паузу на неделю или на месяц.
Бот Random Coffee в Facebook Messenger
Статистику по встречам и обратную связь мы собираем через бота. Наши опросы позволяют определить активную аудиторию, сколько встреч планируется, состоялись они или нет и как участники их оценивают. Любые вопросы и обратную связь обрабатывает наш модератор сообществ. А если кто-то поставил плохую оценку встречи, то мы пишем в личку, чтобы узнать подробности.
Негативный опыт может сложиться по двум причинам. Первое — человеку не отвечает его партнер. В таком случае мы ищем новую пару. Второе — люди не совпали по интересам и не нашли общих тем для разговора. Таких случаев у нас крайне мало из-за того, что люди встречаются в рамках сообществ и одних интересов. 95% наших встреч оцениваются на «хорошо» и «отлично», 65% — на «отлично».
Unity Collisions Vocabulary
Hey partner, here is what I already discovered, there are some important notions to know before proceeding and understanding Unity collision detection 2D:
Physics Engine 2D
To detect collisions and simulate the real world physics system Unity provides a built-in physics engine, so all the maths behind acceleration, forces, gravity, collision detection etc… it’s already there.
Fewww! It seems other brave detectives already solved the case of physics! Thank you whoever you are!
Collision Detection
It’s the detection of an intersection between two or multiple objects. Often it’s related to simulate the physical world in our game.
Let me list for you some detections we would like to handle:
One object (or multiple objects) touches or hits another object (or multiple objects)
One object (or multiple objects) overlaps another object (or multiple objects)
The detection means that in some way we need to be warned when a collision happens!
Please have a look at wikipedia for a large definition about collision detections in video games.
Collider 2D
It’s a component to define the shape of a Gameobject for physical purposes.
If the Gameobject sprite is a complex drawing, just an approximation of its shape will be necessary to work, because the Collider 2D is invisible and not distinguishable during the gameplay!
So the sprite is the drawing, the collider is the shape, what does it mean?
The sprite is what the user sees, the collider is what the engine considers for collisions.
Trigger 2D
It’s a particular behavior of a Collider 2D, when we simply want to detect when one collider overlaps another one without creating a collision.
So the object with this behavior stops being a solid object and allows other colliders to pass through.
RigidBody 2D
It’s a component that allows the physics engine to control the object, it means it will be affected by gravity, forces and collisions too!
Are you ready to play with Vectors?
Right, to move our objects in different directions we need to manage vectors too! Why don’t you have a look at this article for a good refresh: Vector In Game Development: Understand The Basics Of Vector Math
While the physics engine 2D moves colliders and makes them interact with each other, the Rigidbody 2D component is in charge of the communication of these movements with the Transform components.
In this way the Gameobject will change according to the collider!
Преимущества и недостатки
К преимуществам относят:
- финансовую поддержку на несколько лет;
- во время реализации проекта фонд не требует проценты на вложенные деньги;
- хорошую отдачу от вложений;
- продвижение в потребительский круг научно-исследовательских разработок;
- нефинансовую поддержку компании до ее выхода на рынок.
Недостатки такого рода инвестирования:
- для частных инвесторов высокий порог вхождения;
- инвестор не может самостоятельно принимать решение, куда направлять суммы, рассматриваемая организация делает это самостоятельно;
- долгий период окупаемости;
- много инвестиций, где высокий уровень риска, однако есть большое число проектов с низким риском.
Collision callbacks for scripts
When collisions occur, the physics engine calls functions with specific names on any scripts attached to the objects involved. You can place any code you like in these functions to respond to the collision event. For example, you might play a crash sound effect when a car bumps into an obstacle.
On the first physics update where the collision is detected, the function is called. During updates where contact is maintained, is called and finally, indicates that contact has been broken. Trigger colliders call the analogous , and functions. Note that for 2D physics, there are equivalent functions with 2D appended to the name, eg, . Full details of these functions and code samples can be found on the Script Reference page for the MonoBehaviour class.
У обычных не триггерных коллизий есть ещё дополнительная деталь: как минимум один из вовлечённых в коллизию объектов должен обладать не кинематическим Rigidbody (т.е. IsKinematic должен быть выключен). Если оба объекта являются кинематическими, то тогда не будут вызываться функции, вроде и т.д. С триггерными столкновениями это условие не применяется, так что и кинематические и не кинематические Rigidbody будут незамедлительно вызывать при пересечении триггерного коллайдера.
Step 3: Stop Walking Through the Trees!
Currently, we can simply walk through the trees in our level which isn’t too good. Here’s what we’re going to do…
We’ll create a new Prefab with our chosen tree, apply and resize a Collider to fit the tree’s trunk and then swap the tree we used within the terrains ‘Place Trees’ tool for the Prefab that has the Collider. Pretty straightforward right? Let’s get started…
Within the Project Window select the Alder Tree within ‘Terrain Assets / Trees Ambient-Occlusion /’ and drag it into the scene; position it close to your First Person Controller so you can easily and quickly navigate to it.
With the tree selected within the Hierarchy add a Capsule Collider as a Component via the top menu, ‘Component > Physics > Capsule Collider’.
The below dialog will appear, warning you that adding this component will break the connection to its original Prefab. That is, if you change the original Alder tree the changes won’t be seen within this instance.
This isn’t an issue for us so select ‘Add’ to confirm the adding of the Capsule Collider Component.
Click play and try and run through this particular tree and you’ll find that you can’t even get close to it because of the size of the capsulre colliders ‘Bounding Box’.
With the tree selected, use the Inspector to adjust the colliders radius and centre point values so that it only occupies the trunk of the tree as shown below.
Add Colliders to the labyrinth pieces
We are going to place one by one all the prefabricated ones created in the previous video and configuring their Colliders so that the player can’t go through the walls.
Fig. 26: We open the folder where you can find the prefabricated products that were made in the previous video.
First the closed alley piece. We take the Prefab from the project folder and drag it to the scene or to the hierarchy. Then in the inspector click on the Add Component button and choose the Box Collider component.
Fig. 27: We place the piece “Dead End” in the scene.
We see in figure 28 that the Collider completely covers the GameObject, which will not allow us to walk inside it.
Fig. 28: A Box Collider has been assigned to the part.
Figure 29 shows that in the game mode the character can only advance to the border of the Box Collider. This type of Collider is not suitable for this piece.
Fig. 29: The player cannot enter the space between the walls because he is obstructed by the Box Collider.
We have an alternative, if we click on the button “Edit Collider” of the Box Collider (figure 30), we will be able to modify the position of its faces.
Fig. 30: Using the Edit Collider button you can edit the dimensions of the Collider.
This way we can make the Box Collider enclose a part of the object.
This way we can make the Box Collider enclose a part of the object.
Then adding more Colliders and repeating the previous process for the rest of the geometry of the object, we would be able to represent with sufficient precision the border of the object.
Fig. 32: We add two more Box Colliders and edit.
Figure 33 shows that the superposition of the three Box Colliders covers the entire geometry of the piece and allows the player to move around inside.
Fig. 33: Using three Box Colliders the frontier of the GameObject is represented.
The above works for us, but let’s eliminate all the Box Colliders and add a Mesh Collider instead, in this case the wall geometry and quite simple.
Fig. 34: When the Mesh Renderer component is deactivated, the Mesh Collider component can be seen.
Something very important when we are dealing with Prefabs is to apply the changes we are making, for that we use the Apply button located at the top of the inspector (if we have the Prefab selected).
Fig. 35: It is necessary to apply the changes that are made to a Prefab.
Figure 36 shows the model of the portal with an assigned Mesh Collider component.
Fig. 36: Mesh Collider assigned to the door. Complex geometry.
It is not justified to use a Mesh Collider for this model, taking into account the use that we are going to give it, let’s put better a Box Collider and apply the changes to the Prefab.
Fig. 37: Box Collider assigned to the door.
The same for the pedestal model, with a Box Collider we get enough.
Fig. 38: Box Collider assigned to the pedestal with the sword.
The clocks are going to be collectible objects, that is to say when the player passes over them, these will disappear and will give more time of game.
Bearing in mind the use that we are going to give them, we are going to use a spherical Collider, increasing a little the radius as it is observed in figure 39.
Fig. 39: A Sphere Collider is assigned in Trigger mode.
Then let’s activate the “Is Trigger” option of the Sphere Collider component. This will ensure that the Collider does not hinder the player and allows him to detect when he enters the spherical region.
Fig. 40: Activating the “Is Trigger” box indicates that the Collider will act as a Trigger.
Step 2: Using Colliders as Level Boundaries
Create an empty GameObject using the top menu, GameObject > Create Empty, and rename it ‘Boundaries’. Make sure its Position within the Inspector is (0, 0, 0).
Duplicate it using either RMB > Duplicate or by Ctrl + D and rename it ‘Bottom’. Drag ‘Bottom’ onto ‘Boundaries’ to make it a child of the Boundaries GameObject.
With ‘Bottom’ selected add a Box Collider Component using the top menu, Component > Physics > Box Collider, and within the Inspector set the Box Collider’s Position and Centre values to those shown below:
Click the Y (Green) Axis of the Scene Gizmo within the top right hand corner of the Scene Window to transition the scene view into Top View, and zoom out so you can see your whole level as I have below:
Duplicate ‘bottom’ three times and rename them to ‘Right’, ‘Left’, and ‘Top’. Select each one at a time and set their Box Collider Component’s Position and Center values to those below.
You should now have surrounded your level on all 4 sides with Empty GameObjects, each with Box Colliders Components, similar to below. If you now run your game you’ll find you can’t fall off the map anymore.
Let’s now put colliders to use in another situation…
Collision Detection 2D in scripts
Well! Now we know many things about Unity collision detection 2D, we are ready to understand what we can do when a collision happens.
Unity, our partner provides us two different ways to handle the collisions depending if a collider is a trigger or not.
We just need to add the snippets below to the script of our Gameobject with a collider to handle the collisions and do what we want after the detection.
Just keep in mind if the trigger checkbox is unchecked we need the “Collision 2D” snippets, otherwise if not “Trigger 2D” .
Collision 2D
//Just hit another collider 2D private void OnCollisionEnter2D(Collision2D collision) { //Do something } //Hitting a collider 2D private void OnCollisionStay2D(Collision2D collision) { //Do something } //Just stop hitting a collider 2D private void OnCollisionExit2D(Collision2D collision) { //Do something }
Trigger 2D
//Just overlapped a collider 2D private void OnTriggerEnter2D(Collider2D collision) { //Do something } //Overlapping a collider 2D private void OnTriggerStay2D(Collider2D collision) { //Do something } //Just stop overlapping a collider 2D private void OnTriggerExit2D(Collider2D collision) { //Do something }
Идея в том, чтобы выйти за пределы профессионального «пузыря»
«У меня было две проблемы — мне не хватало общения с новыми людьми, и отработав два года в проекте Яндекс.Здоровье, я понимал, что я хочу делать что-то свое», — говорит Константин.
В один момент твои коллеги становятся друзьями, вместе обедаете, вместе отдыхаете, замыкаетесь в своем кругу, и общение вне Яндекса пропадает вообще» — рассказывает Павел. «Мы подумали, что это может быть интересно не только людям внутри Яндекса. Он сомневался, что незнакомые люди захотят встречаться лично, не имея между собой никаких связей, поэтому сделал пост закрытым — только для друзей. Он решил протестировать гипотезу и рассказал об идее у себя в Фейсбуке. Но закрытый пост сходу собрал 100 участников. «Я ожидал 10–12 людей, которые присоединятся. Тогда мы поверили в эту идею».
Ответы попадали в Excel таблицу. В начале это был бот, который спрашивал, хочет ли человек участвовать во встречах. Брал весь список, делил пополам и совмещал в порядке того, как люди откликались. Павел видел список всех желающих и сам, руками, разбивал их на пары.
Такие штуки никогда не прокатывали. «Были люди, которые писали и говорили: „слушай, там есть такая девушка, мне очень хотелось бы попасть с ней на Random Coffee, вот ссылка на ее профиль, можно как-то там…”», — говорит Павел — «на что я отвечал: „у тебя есть две руки, у тебя есть ссылка на ее профиль, напиши ей, это же очень просто, чего тебе еще не хватает”. Если ты знаешь, с кем ты хочешь встретиться, то можешь написать человеку сам». Концепция Random Coffee — это случайные встречи.
Сейчас времена, когда все связаны со всеми, почти любой человек от тебя в паре кнопок. Идея Random Coffee правда звучит слишком просто, чтобы поверить, будто людям нужен такой продукт. Тем не менее, идея пользуется спросом. Зачем сервис, который назначает встречи с людьми, если ты сам можешь написать кому угодно?
Если ты кому-то написал и позвал на кофе, от тебя ждут, что ты что-то хочешь получить от встречи. «У нас у всех есть барьер, который не позволяет написать незнакомому человеку», — говорит Константин, — «Мы все думаем, что нам скорее всего откажут — это неприятное ощущение. На встрече формата Random Coffee вы полностью равны. Вы находитесь не в равной ситуации — ты как будто просящий. Все неловкости снимает бот».
Основная сложность проекта не техническая — сложно собрать вокруг себя сообщество и найти способы монетизации
Павел и Константин начали с пути B2B и стали предлагать Random Coffee компаниям как сервис. Их первым клиентом стало сообщество GoPractice. «GoPractice был для нас первым тестом. Нам было интересно посмотреть на цифры в состоявшемся сообществе, поэтому мы работали с ними бесплатно и продолжаем до сих пор. С другими сообществами мы уже пошли по схеме коммерческого партнерства и предлагали ежемесячную оплату», — рассказывает Константин.
После первого же пост о Random Coffee в сообществе поучаствовать в распределении пар пришли около трехсот человек. Следом запустилось сарафанное радио. Организаторы сообществ сами шли к ребятам и спрашивали, на каких условиях можно запустить сервис у себя.
«Для меня это был первый опыт продажи продукта вне компании. Мы понимали, что чем больше участников, тем больше работы саппорта, поэтому сделали самый нижний тариф до сто участников и решили брать за это пять тысяч рублей в месяц. Я очень переживал, мне казалось, это большие деньги, и вряд ли кто-то согласятся сразу. Но мы сделали оффер, и все казалось ок
Всегда есть страх назвать сумму и получить отказ, поэтому на старте очень важно не бояться. Впоследствии я даже специально завышал ценник, снова переживал — теперь уже точно не согласятся
Но опять был успех, потом опять и опять».