Вопрос-[ответ] по Unity
|
|
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
Alastar | Дата: Пятница, 19 Июля 2013, 21:07 | Сообщение # 4321 |
постоянный участник
Сейчас нет на сайте
| Adom, все зависит от архитектуры твоего сервера, мы ж даже не знаем каким образом у тебя создается ГО игрока.
Big Boobs (+18 only!)
|
|
| |
Adom | Дата: Пятница, 19 Июля 2013, 21:10 | Сообщение # 4322 |
Печенька!
Сейчас нет на сайте
| ааа блин забыл вот Это спавн игроков /* * This file is part of the Unity networking tutorial by M2H (http://www.M2H.nl) * The original author of this code Mike Hergaarden, even though some small parts * are copied from the Unity tutorials/manuals. * Feel free to use this code for your own projects, drop me a line if you made something exciting! */ #pragma strict
public var playerPrefab : Transform;
function OnServerInitialized(){ Spawnplayer(); }
function OnConnectedToServer(){ Spawnplayer(); }
function Spawnplayer(){ var myNewTrans : Transform = Network.Instantiate(playerPrefab, transform.position, transform.rotation, 0);
}
function OnPlayerDisconnected(player: NetworkPlayer) { Debug.Log("Clean up after player " + player); Network.RemoveRPCs(player); Network.DestroyPlayerObjects(player); }
function OnDisconnectedFromServer(info : NetworkDisconnection) { Debug.Log("Clean up a bit after server quit"); Network.RemoveRPCs(Network.player); Network.DestroyPlayerObjects(Network.player); /* * Note that we only remove our own objects, but we cannot remove the other players * objects since we don't know what they are; we didn't keep track of them. * In a game you would usually reload the level or load the main menu level anyway ;). * * In fact, we could use "Application.LoadLevel(Application.loadedLevel);" here instead to reset the scene. */ Application.LoadLevel(Application.loadedLevel); } а это сам сервер /* * This file is part of the Unity networking tutorial by M2H (http://www.M2H.nl) * The original author of this code Mike Hergaarden, even though some small parts * are copied from the Unity tutorials/manuals. * Feel free to use this code for your own projects, drop me a line if you made something exciting! */ #pragma strict
var connectToIP : String = "127.0.0.1"; var connectPort : int = 25001;
//Obviously the GUI is for both client&servers (mixed!) function OnGUI () {
if (Network.peerType == NetworkPeerType.Disconnected){ //We are currently disconnected: Not a client or host GUILayout.Label("Connection status: Disconnected"); connectToIP = GUILayout.TextField(connectToIP, GUILayout.MinWidth(100)); connectPort = parseInt(GUILayout.TextField(connectPort.ToString())); GUILayout.BeginVertical(); if (GUILayout.Button ("Connect as client")) { //Connect to the "connectToIP" and "connectPort" as entered via the GUI //Ignore the NAT for now Network.useNat = false; Network.Connect(connectToIP, connectPort); } if (GUILayout.Button ("Start Server")) { //Start a server for 32 clients using the "connectPort" given via the GUI //Ignore the nat for now Network.useNat = false; Network.InitializeServer(32, connectPort); } GUILayout.EndVertical(); }else{ //We've got a connection(s)!
if (Network.peerType == NetworkPeerType.Connecting){ GUILayout.Label("Connection status: Connecting"); } else if (Network.peerType == NetworkPeerType.Client){ GUILayout.Label("Connection status: Client!"); GUILayout.Label("Ping to server: "+Network.GetAveragePing( Network.connections[0] ) ); } else if (Network.peerType == NetworkPeerType.Server){ GUILayout.Label("Connection status: Server!"); GUILayout.Label("Connections: "+Network.connections.length); if(Network.connections.length>=1){ GUILayout.Label("Ping to first player: "+Network.GetAveragePing( Network.connections[0] ) ); } }
if (GUILayout.Button ("Disconnect")) { Network.Disconnect(200); } }
}
// NONE of the functions below is of any use in this demo, the code below is only used for demonstration. // First ensure you understand the code in the OnGUI() function above.
//Client functions called by Unity function OnConnectedToServer() { Debug.Log("This CLIENT has connected to a server"); }
function OnDisconnectedFromServer(info : NetworkDisconnection) { Debug.Log("This SERVER OR CLIENT has disconnected from a server"); }
function OnFailedToConnect(error: NetworkConnectionError){ Debug.Log("Could not connect to server: "+ error); }
//Server functions called by Unity function OnPlayerConnected(player: NetworkPlayer) { Debug.Log("Player connected from: " + player.ipAddress +":" + player.port); }
function OnServerInitialized() { Debug.Log("Server initialized and ready"); }
function OnPlayerDisconnected(player: NetworkPlayer) { Debug.Log("Player disconnected from: " + player.ipAddress+":" + player.port); }
// OTHERS: // To have a full overview of all network functions called by unity // the next four have been added here too, but they can be ignored for now
function OnFailedToConnectToMasterServer(info: NetworkConnectionError){ Debug.Log("Could not connect to master server: "+ info); }
function OnNetworkInstantiate (info : NetworkMessageInfo) { Debug.Log("New object instantiated by " + info.sender); }
function OnSerializeNetworkView(stream : BitStream, info : NetworkMessageInfo) { //Custom code here (your code!) }
/* The last networking functions that unity calls are the RPC functions. As we've added "OnSerializeNetworkView", you can't forget the RPC functions that unity calls..however; those are up to you to implement. @RPC function MyRPCKillMessage(){ //Looks like I have been killed! //Someone send an RPC resulting in this function call } */
|
|
| |
Kira | Дата: Пятница, 19 Июля 2013, 21:23 | Сообщение # 4323 |
заслуженный участник
Сейчас нет на сайте
| Есть код #if UNITY_EDITOR EditMode__CreateCollider(); #else UpdateCollider(); #endif
почему UpdateCollider() зеленного цвета, словно коммент? И я так понимаю что в редакторе выполниться :EditMode__CreateCollider(); а в билде UpdateCollider(); ?Добавлено (19.07.2013, 21:23) --------------------------------------------- И есть еще /// <summary> /// Gets or sets the sprite identifier. /// </summary> В итоге при на ведении на переменную появляется надпись, как это называется и где почитать?
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
|
|
| |
pixeye | Дата: Пятница, 19 Июля 2013, 21:29 | Сообщение # 4324 |
Red Winter Software
Сейчас нет на сайте
| Цитата (Kira) почему UpdateCollider() зеленного цвета, словно коммент?
таким образом редактор визуально показывает тебе что сейчас у тебя платформа UNITY_EDITOR и то что "зеленое" работать не будет.
Цитата (Kira) В итоге при на ведении на переменную появляется надпись, как это называется и где почитать?
КЛАЦ
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
Adom | Дата: Пятница, 19 Июля 2013, 21:30 | Сообщение # 4325 |
Печенька!
Сейчас нет на сайте
| Помогите !
|
|
| |
Kira | Дата: Пятница, 19 Июля 2013, 21:40 | Сообщение # 4326 |
заслуженный участник
Сейчас нет на сайте
| Цитата (Omlette) Я прочитал 400 страниц Шилдта (учебник с#) и никак не могу применять полученные знания в юньке. Еще почитай патерны(или шаблоны) проектирования. ну и чужой код. Цитата (Omlette) Kira, тогда как сделать ссылку на первую..? Что-то не врубаюсь unsafeДобавлено (19.07.2013, 21:40) --------------------------------------------- pixeye, спс
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
|
|
| |
|
Knight1032 | Дата: Суббота, 20 Июля 2013, 00:55 | Сообщение # 4328 |
заслуженный участник
Сейчас нет на сайте
| Как синхронизировать анимацию по сети?
Да, я программист, дизайнер, сценарист, Я сам себе издатель и сам себе игрок...
|
|
| |
White9 | Дата: Суббота, 20 Июля 2013, 11:48 | Сообщение # 4329 |
заслуженный участник
Сейчас нет на сайте
| Fr0sT, если у тебя просто управление персонажем с помощью мышки, то попробуй взять часть кода отсюда http://docs.unity3d.com/Documentation/ScriptReference/CharacterController.Move.html А так даже не знаю что там может не работать...
|
|
| |
seaman | Дата: Суббота, 20 Июля 2013, 12:14 | Сообщение # 4330 |
старожил
Сейчас нет на сайте
| Цитата Ну я так его задаю moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); Естественно Вам и выдает ошибку. В мануале что написано: "Logs an error if the forward direction is zero." Ну а у Вас этот вектор в большинстве случаев и будет нулевым (если мышку не двигаете). Проверяйте его на == 0 и только если не равен делайте LookRotation
|
|
| |
Adom | Дата: Суббота, 20 Июля 2013, 15:28 | Сообщение # 4331 |
Печенька!
Сейчас нет на сайте
| Вот сделал управление для мультиплеера но почему никто не может двигаться. Вот скрипт
using UnityEngine; using System.Collections;
public class D : MonoBehaviour { public Transform Player; public void Awake(){ if (!networkView.isMine) { enabled = false; } } // Use this for initialization void Start () { } // Update is called once per frame void Update () { if(Input.GetKey(KeyCode.W)){ Player.Translate(0,0,1 *1); } // if(Input.GetKey(KeyCode.S)){ Player.Translate(0,0,-1 *1); } } }
|
|
| |
zisX | Дата: Суббота, 20 Июля 2013, 19:20 | Сообщение # 4332 |
Neto Zis
Сейчас нет на сайте
| Я создаю небольшой проект fps и хотел в нем сделать декали написал небольшой код -
RaycastHit _hit;
if (Physics.Raycast(_camTransform.position, _direction, out _hit, Range))
{ if (_hit.collider.tag == "DecalOn") { Instantiate(decalPrefab, _hit.point, Quaternion.FromToRotation(Vector3.up, _hit.normal)); } }
все сделал,настроил скрипт в editor ,но когда я стреляю декаль создается немного внутри обьектов,т.е. когда я хожу и двигаю камерой декаль то пропадает то появляется ,помоги хотел узнать можно ли сделать так что бы декаль создавалась на не большом расстояние от обьекта?Добавлено (20.07.2013, 19:20) --------------------------------------------- Нашёл,решение:создал куб,удалил у него меш,и оставил только коллайдер ,нажал на кнопку это триггер,сделал декаль дочерним к кубу,куб настроил под декаль и опустил немного в низ,создал новый префаб,PROFIT!!!
|
|
| |
Man-o-War | Дата: Воскресенье, 21 Июля 2013, 16:04 | Сообщение # 4333 |
Der Arbaletös Creatio
Сейчас нет на сайте
| Хм, такой вопросец. Как в Юнити можно работать с посторонними файлами?(Текстовыми например)?
В чем разница между уткой, господа?
|
|
| |
Kira | Дата: Воскресенье, 21 Июля 2013, 16:25 | Сообщение # 4334 |
заслуженный участник
Сейчас нет на сайте
| Man-o-War, Вот так можно сохранять скрипт унаследованный от ScriptableObject Код public static class CustomAssetUtility { public static void CreateAsset<T>() where T : ScriptableObject { T asset = ScriptableObject.CreateInstance<T>();
string path = AssetDatabase.GetAssetPath(Selection.activeObject); if (path == "") { path = "Assets"; } else if (Path.GetExtension(path) != "") { path = path.Replace(Path.GetFileName(AssetDatabase.GetAssetPath(Selection.activeObject)), ""); }
string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/New " + typeof(T).ToString() + ".asset");
AssetDatabase.CreateAsset(asset, assetPathAndName);
AssetDatabase.SaveAssets(); EditorUtility.FocusProjectWindow(); Selection.activeObject = asset; } } ну или Код if (!File.Exists(path)) { // Создание файла и запись в него using (StreamWriter sw = File.CreateText(path)) { sw.WriteLine("Hello"); sw.WriteLine("World"); } } // Открываем файл для чтения и читаем из него все строки using (StreamReader sr = File.OpenText(path)) { string s = ""; while ((s = sr.ReadLine()) != null) { Debug.Log(s); } }
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
|
|
| |
Левша | Дата: Воскресенье, 21 Июля 2013, 16:40 | Сообщение # 4335 |
почти ветеран
Сейчас нет на сайте
| Цитата (Man-o-War) Как в Юнити можно работать с посторонними файлами?(Текстовыми например)? Методы WWW (это для загрузки) и parse (для преобразования текста) Загруженные форматы - .тхт .html .php - все будут читаться как текстовые. В некоторых случаях можно понимать форматирование (html)
X.cor.R (Prologue)
|
|
| |
|
Kira | Дата: Воскресенье, 21 Июля 2013, 19:36 | Сообщение # 4337 |
заслуженный участник
Сейчас нет на сайте
| Fr0sT, Все манипуляции можно делать через код.
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
|
|
| |
Novatorvlad | Дата: Воскресенье, 21 Июля 2013, 22:04 | Сообщение # 4338 |
постоянный участник
Сейчас нет на сайте
| Цитата (Man-o-War) Хм, такой вопросец. Как в Юнити можно работать с посторонними файлами?(Текстовыми например)? Как и в самом C#.
Девбложек
|
|
| |
Man-o-War | Дата: Воскресенье, 21 Июля 2013, 23:05 | Сообщение # 4339 |
Der Arbaletös Creatio
Сейчас нет на сайте
| лол, сократил у кубика Scale в одном из измерений до нуля, и получился плоский спрайтик. Соответственно вопросец, стоит создавать с помощью таких кубиков 2d игру, или слишком неэффективно выйдет?
В чем разница между уткой, господа?
|
|
| |
Левша | Дата: Понедельник, 22 Июля 2013, 00:04 | Сообщение # 4340 |
почти ветеран
Сейчас нет на сайте
| Я бы вообще примитивы из Юнити не использовал, там плоскость из 32 - х полигонов... В максе я делаю из 2 - х.
X.cor.R (Prologue)
|
|
| |