Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Learning C# 7 By Developing Games with Unity 2017
Learning C# 7 By Developing Games with Unity 2017

Learning C# 7 By Developing Games with Unity 2017: Learn C# Programming by building fun and interactive games with Unity , Third Edition

Arrow left icon
Profile Icon DaGraça Profile Icon Grzegorz Lukosek
Arrow right icon
€41.99
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.6 (7 Ratings)
Paperback Dec 2017 290 pages 3rd Edition
eBook
€22.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m
Arrow left icon
Profile Icon DaGraça Profile Icon Grzegorz Lukosek
Arrow right icon
€41.99
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.6 (7 Ratings)
Paperback Dec 2017 290 pages 3rd Edition
eBook
€22.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m
eBook
€22.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Table of content icon View table of contents Preview book icon Preview Book

Learning C# 7 By Developing Games with Unity 2017

Discovering Your Hidden Scripting Skills and Getting Your Environment Ready

Computer programming is viewed by the average person as requiring long periods of training to learn skills that are totally foreign and darn near impossible to understand. The word geek is often used to describe a person who can write computer code. The perception is that learning to write code takes great technical skills that are just so hard to learn. This perception is totally unwarranted. You already have the skills needed but don't realize it. Together, we will crush this false perception that you may have of yourself by refocusing, one step at a time, on the knowledge that you already possess to write code and develop an awesome game from scratch.

In this chapter, we will cover the following topics:

  • Dealing with preconceived fears and concepts about scripts
  • Preparing the Unity environment for efficient coding
  • Introducing Unity's documentation for scripting
  • Explaining how Unity and the MonoDevelop editor work together
  • Creating our first C# script

Let's begin our journey by eliminating any anxiety about writing scripts for Unity and become familiar with our scripting environment.

Prerequisite knowledge to use this book

Great news if you are a beginner in scripting! This book is for those with absolutely no knowledge of programming. It is devoted to teaching the basics of C# with Unity.

However, some knowledge of Unity's operation is required. We will only be covering the parts of the Unity interface that are related to writing C# code. I am assuming that you know your way around Unity's interface. I will help you, however, to prepare the Unity layout for efficient scripting.

Dealing with scriptphobia

You've got Unity up and running, studied the interface, and added some GameObjects to the scene. Now you're ready to have those GameObjects move around, listen, speak, pick up other objects, shoot the bad guys, or do anything else that you can dream of. So you click Play, and nothing happens. Well, darn it all anyway!

You've just learned a big lesson: all those fantastic, highly detailed GameObjects are dumber than a hammer. They don't know anything, and they surely don't know how to do anything.

So, you proceed to read the Unity Forums, study some scripting tutorials, and maybe even copy and paste some scripts to get some action going when you click Play. That's great, but then you realize that you don't understand anything in the scripts you've copied. Sure, you probably recognize the words, but you fail to understand what those words do or mean in a script.

You look at the code, your palms get sweaty, and you think to yourself, "I'll never be able to write scripts!" Perhaps you have scriptphobia: a fear of not being able to write instructions (I made that up). Is that what you have?

The fear that you cannot write down instructions in a coherent manner? You may believe you have this affliction, but you don't. You only think you do.

The basics of writing code are quite simple. In fact, you do things every day that are just like the steps executed in a script. For example, do you know how to interact with other people? How to operate a computer? Do you fret so much about making a bologna sandwich that you have to go to an online forum and ask how to do it?

Of course you don't. In fact, you know these things as everyday routines or maybe habits. Think about this for a moment: do you have to consciously think about the routines that you do every day? Probably not. After you do them over and over, they become automatic.

The point is that you do things every day following sequences of steps. Who created these steps that you follow? More than likely, you did, which means that you've been scripting your whole life.

You just never had to write down the steps for your daily routines on a piece of paper before you did them. You could write the steps down if you really wanted to, but it takes too much time and there's no need for it; however, you do in fact know how to. Well, guess what? To write scripts, you only have to make one small change, start writing down the steps, not for yourself but for the world that you're creating in Unity.

So as you can see, you are already familiar with the concept of dealing with scripts. Most beginners of Unity easily learn their way around the Unity interface, how to add assets, and working in the Scene and Hierarchy windows. Their primary fear and roadblock is their false belief that scripting is too hard to learn.

Relax! You now have this book. I am going to get really basic in the early chapters. Call them baby steps if you want, but you will see that scripting for Unity is similar to doing things that you are already doing every day. I'm sure you will have many Aha moments as you learn and overcome your unjustified fears and beliefs.

Downloading Unity

You have probably already installed and activated Unity. Where you should look for the latest Unity version and license might be obvious. However, I've noticed lots of questions online about where you can get Unity for free, and so I decided to cover this subject. If you feel that this step is unnecessary for you, skip this part.

The best place to download your Unity copy from is, of course, Unity's official website: https://store.unity.com/download?ref=personal.

In this book, we will be covering Unity Version 2017.1.1 and higher. We need to download the latest version of Unity and install it with all components ticked. It's a good idea to install Unity with the example project. The Unity Example project (the Angry Bots game) is there for us to play with, experiment, and learn.

Unity has a store where we can also download more example projects and start playing around with them. To access the store, you can do it online or directly from the Unity engine, so don't worry if you forgot to check the Unity Example project in the installation menu because you can download it at any time.

Obtaining a free license

The easiest way to obtain a Unity license is by simply launching Unity for the first time. The following steps will guide you through it:

  1. Fill in your details so that Unity Technologies can send you your Unity free license code.
  2. Unity will present the License management window. Chose the Unity Personal (free version).
  3. You should receive a verification email with a Confirm email button. Once you have clicked it, you should be able to log in to Unity.

You are now all set with the latest version of Unity and a free license!

Teaching behavior to GameObjects

You have Unity because you want to make a game or something interactive, such as an AR or VR experience. You've filled your game with dumb GameObjects. What you have to do now is be their teacher. You have to teach them everything that they need to know to live in this world of make–believe. This is the part where you have to write down instructions so that your GameObjects can be smarter.

Here's a quote from the Unity Manual:

"The behavior of GameObjects is controlled by the Components that are attached to them... Unity allows you to create your own Components using scripts."

Notice the word behavior. It reminds me of a parent teaching a child proper behavior. This is exactly what we are going to do when we write scripts for our GameObjects: we'll teach them the behaviors we want them to have. The best part is that Unity has provided a long list of all the behaviors that we can give to our GameObjects. This list of behaviors is documented in the Scripting Reference.

This means that we can pick and choose anything that we want a GameObject to do from this list of behaviors. Unity has done all the hard work of programming all of these behaviors for you. All we need to do is use some code to tie into these behaviors. Did you catch that? Unity has already created the behaviors; all that we have to do is supply a bit of C# code to apply these behaviors to our GameObjects. Now, how difficult can it really be since Unity has already done most of the programming?

Using Unity's documentation

When we begin writing scripts, we will be looking at Unity's documentation quite often, so it's beneficial to know how to access the information we need. For an overview of a topic, we'll use the Reference Manual, and for specific coding details and examples, we'll use the Scripting Reference.

There are a number of ways to access the Unity documentation:

  • Through the Unity website at http://docs.unity3d.com/ScriptReference/index.html.
  • Through the Help menu on the top bar. In this way, you can access a local copy of Unity reference as we can see in the following image. This is worth remembering if there are internet connectivity issues:
  • Let's open Scripting Reference now and search for a GameObject:
  • Through the Help menu next to the component name. This will work only for Unity's built-in, standard components.

This is the place where we can find scripting documentation, answers to our questions, and a lot of example code. You might feel a bit lost right now, but don't worry, this is quite normal. The Unity documentation is really easy to use. For the fastest access to relevant information, use Search scripting... in the topright corner, as shown here:

The whole reason Scripting Reference exists is so that we can look for information as we need it. This will actually make us remember the code that we write over and over, just like our other daily routines and habits. It is a very good idea to take a brief look through the most common Unity objects, such as GameObject, Transform, MonoBehaviour, and Renderer.

C# documentation – where to find it and do I need it at all?

Another resource that we will be using is Microsoft's C# scripting documentation. We can access it at https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx.

Let's not worry about it too much at the moment. We agreed to take baby steps, so bookmark this link in your web browser for now.

The Unity community – asking others for help

You are planning to become a game developer, or are using Unity for other interactive projects. During production, at some point, you will definitely need help from other developers. Unity has a very dedicated community of developers who are always keen to help each other.

When we encounter some hurdles, why not ask others? In most cases, there is someone like you out there with similar issues that have been resolved. A good place to talk about issues in your project is in the Unity Forums. Go ahead and create a forum account now! Don't be shy; say "hello" to others! Unity Forums are also the perfect place to read announcements about upcoming updates.

Use Unity Forums to read about others' work, share your work, and connect with other developers at http://forum.unity3d.com/.

Use Unity Answers to ask specific questions about issues that you have encountered. Remember to be very specific, try to describe the problem in detail, and don't ask general questions. For example, don't ask, "Why is my GameObject not moving?" Instead, ask specifically, "GameObject not moving when adding a rigid body force" and then describe the details. Posting your code under the question is also a very good idea.

Working with C# script files

Until you learn some basic concepts of programming, it's too early to study how scripts work, but you still need to know how to create one.

There are several ways of creating a script file using Unity:

  1. In the menu, navigate to Assets | Create | C# Script
  2. In the Project tab, navigate to Create | C# Script
  3. Right-click on the Project tab, and from the popup menu, navigate to
    Create | C# Script

All of these ways create a .cs file in the Unity Assets folder. From now on, whenever I tell you to create a C# script, use whichever method you prefer.

Creating a C# script file

We are now ready to create a new C# file in our learning project:

  1. Create a new Unity project and name it Learning Project
  2. Right-click on the Project tab and create a folder named Scripts
  3. Right-click on the Scripts folder, as shown in the following screenshot, and create a C# script:
  1. Immediately rename NewBehaviourScript to LearningScript

We have created the Scripts folder, which we will be using to organize our C# files. This folder will contain all of our Unity script files. We have also used Unity to create a C# script file named LearningScript.cs.

Introducing the MonoDevelop code editor

Unity uses an external editor to edit its C# scripts. Even though it can create a basic starter C# script for us, we still have to edit the script using the MonoDevelop code editor that's included with Unity.

Syncing C# files between MonoDevelop and Unity

Since Unity and MonoDevelop are separate applications, Unity will keep MonoDevelop synchronized with itself. This means that if you add, delete, or change a script file in one application, the other application will reflect the changes automatically.

It is possible to also choose another code editor if we want to. For example, web developers can keep using their favorite editor if they choose to do so. If you feel more comfortable using another code editor, you can do it by following these steps:

  1. Go to the Preferences menu that can be found under the Unity tab on Mac, or the Edit tab on Windows
  2. Select External Tools:
  1. Under the External Script Editor option, you can browse for the application that you want to use as the code editor:

Opening LearningScript in MonoDevelop

Unity will synchronize with MonoDevelop the first time you tell it to open a file for editing. The simplest way to do this is by double-clicking on LearningScript in the Scripts folder (provided in the example project). If your project is empty, don't worry, you can create a new C# script that will contain the exact same information. To do it, you just need to right-click inside the Assets tab and select Create | C#Script. It might take a few seconds for MonoDevelop to open and sync.

Our window should look like this:

MonoDevelop launched with LearningScript open and ready to edit.

What we see now is a default C# script structure that Unity creates. It contains information on what namespaces are used in the script, the class definition, and two methods that Unity adds by default, as shown here:

The namespace – highlighted in blue

The namespace is simply an organizational construct. It helps organize parts of code. Don't worry too much about it now. We won't need to create them anytime soon. All we will need to know for now is how many namespaces we are using in our script.

In our script, we can see these two lines:

using UnityEngine; 
using System.Collections; 

The preceding two lines simply mean that our script will be using the UnityEngine and System.Collections namespaces, and we will have access to all parts of these libraries. These two namespaces are added to any new C# script by default, and we will use them in most of our cases.

Watching for possible gotchas while creating script files in Unity

Notice line 4 in the following screenshot:

public class LearningScript : MonoBehaviour 

The class name LearningScript is the same as the filename LearningScript.cs. This is a requirement. You probably don't know what a class is yet, but that's okay. Just remember that the filename and the class name must be the same.

When you create a C# script file in Unity, the filename in the Project tab is in Edit mode, ready to be changed. Please rename it right then and there. If you rename the script later, the filename and the class name won't match. The filename would change, but line 4 will be this:

public class NewBehaviourScript : MonoBehaviour 

This can easily be fixed in MonoDevelop by changing NewBehaviourScript in line 4 to the same name as the filename, but it's much simpler to do the renaming in Unity immediately.

Fixing synchronization if it isn't working properly

What happens when Murphy's Law strikes and syncing just doesn't seem to be working correctly? Should the two apps somehow get out of sync as you switch back and forth between them for whatever reason, do this. Rightclick on Unity's Project window and select Sync MonoDevelop Project. MonoDevelop will resync with Unity.

Adding our script to GameObject

We have created the LearningScript class. Its code is saved in the file in the Project/Scripts folder. To include an instance of this class in our project, we will add it as a component to an empty GameObject.

Let's create a new GameObject. In the menu, navigate to GameObject | Create Empty Child, as shown here:

There are a number of ways of adding our LearningScript component to the GameObject. Let's talk about the simplest one:

  1. Select your newly created GameObject:
  1. Drag and drop the Script file from the Project tab to the empty space underneath the Transform component:

We can now see that our LearningScript file has been added as a component to the GameObject. This means that an instance of LearningScript is active and ready to execute code.

Lots of files can create a mess

As our Unity project progresses, we will have lots of different types of files in the Project view. It's highly recommended that you keep a clean and simple folder structure in your project.

Let's keep our scripts in the Scripts folder, textures in Textures, and so on, so that it looks something like this:

From now on, let's not keep any loose files in the Assets folder.

Why does my Project tab look different?

Unity allows us to customize the user interface. Everyone has their own favorite. I prefer a onecolumn layout Project tab instead of Unity's default twocolumn layout. To change this, open the context menu in the top-right corner of the Project tab, as shown in this screenshot:

When working in a team, you will notice that every team member has their own layout preference. A level designer may like to use a big Scene tab. An animator will probably use the Animation and Animator tabs. For a programmer like you, all tabs are fairly important. However, the Console tab is the one that you will use a lot while testing your code. I mostly prefer a layout divided into four columns from left to right, Scene, and Console, then Hierarchy, then Project, and finally Inspector.

It looks like what is shown in the following screenshot:

If you have trouble with moving tabs around, refer to the Customizing Your Workspace chapter in the Unity Manual.

Feel free to change the interface however you want. But try to keep the Console tab visible all the time. We will use it a lot throughout the book. You can also save your custom layouts in the Layout menu.

The Console tab shows messages, warnings, errors, or debug output from your game. You can define your own messages to be sent to the console.

Instance? What is this?

In object-oriented programming, an instance is simply a copy of the object. In this case, there is one copy of our LearningScript file. We are using two terms here: GameObject and Object. Do not mix these up, they are, in fact, two different things. GameObject is an object in your Unity scene. It contains components such as Transform or our newly created LearningScript.

Object in programming means an instance of the script. Don't worry about the terminology too much at this stage. I am sure that the difference between these two will become much clearer soon.

Summary

This chapter tried to put you at ease with writing scripts for Unity. You do have the ability to write down instructions, which is all a script is, just a sequence of instructions. We saw how simple it is to create a new script file. You probably create files on your computer all the time. We also saw how to easily bring forth Unity's documentation. We created a channel to communicate with other developers. Finally, we took a look at the MonoDevelop editor. None of this was complicated. In fact, you probably use apps all the time that do similar things. The bottom line: there's nothing to fear here.

In Chapter 2, Introducing the Building Blocks for Unity Scripts, we will start off introducing the building blocks for Unity scripts by taking an introductory look at the building blocks of programming. For this, we'll be using variables, methods, dot syntax, and classes. Don't let these terms scare you. The concepts behind each one of these are similar to things that you do often, perhaps every day.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • • Learn the fundamentals of C# 7 scripting to develop GameObjects and master the basics of the new UI system in Unity 2017
  • • Build and develop your 2D game right from scratch and extend it to 3D while implementing the principles of object-oriented programming and coding in C# 7
  • • Get to grips with the fundamentals of optimizing your game using the latest features of Unity 2017

Description

Do you want to learn C# programming by creating fun and interactive games using the latest Unity 2017 platform? If so, look no further; this is the right book for you. Get started with programming C# so you can create 2D and 3D games in Unity. We will walk you through the basics to get you started with C# 7 and its latest features. Then, explore the use of C# 7 and its latest functional programming capabilities to create amazing games with Unity 2017. You will create your first C# script for Unity, add objects into it, and learn how to create game elements with it. Work with the latest functional programming features of C# and leverage them for great game scripting. Throughout the book, you will learn to use the new Unity 2017 2D tool set and create an interactive 2D game with it. You will make enemies appear to challenge your player, and discover some optimization techniques for great game performance. At the end, you will learn how to transform a 2D game into 3D, and you will be able to skill up to become a pro C# programmer with Unity 2017!

Who is this book for?

This book is for game developers and enthusiasts who want to get started with game development with Unity 2017. No prior experience of C# is required.

What you will learn

  • • Create your first 2D and 3D games in Unity
  • • Understand the fundamentals of variables, methods, and code syntax in C#
  • • Use loops and collections efficiently in Unity to reduce the amount of code
  • • Develop a game using object-oriented programming principles
  • • Implement simple enemy characters into the game to learn point-to-point movement and Tree behaviors
  • • Avoid performance mistakes by implementing different optimization techniques
  • • Export 3D models and animations and import them inside a Unity project
Estimated delivery fee Deliver to Switzerland

Standard delivery 10 - 13 business days

€11.95

Premium delivery 3 - 6 business days

€16.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Dec 26, 2017
Length: 290 pages
Edition : 3rd
Language : English
ISBN-13 : 9781788478922
Vendor :
Unity Technologies
Languages :
Concepts :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Estimated delivery fee Deliver to Switzerland

Standard delivery 10 - 13 business days

€11.95

Premium delivery 3 - 6 business days

€16.95
(Includes tracking information)

Product Details

Publication date : Dec 26, 2017
Length: 290 pages
Edition : 3rd
Language : English
ISBN-13 : 9781788478922
Vendor :
Unity Technologies
Languages :
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 120.97
Learning C# 7 By Developing Games with Unity 2017
€41.99
Mastering Unity 2017 Game Development with C#
€41.99
Unity 2017 Mobile Game Development
€36.99
Total 120.97 Stars icon

Table of Contents

15 Chapters
Discovering Your Hidden Scripting Skills and Getting Your Environment Ready Chevron down icon Chevron up icon
Introducing the Building Blocks for Unity Scripts Chevron down icon Chevron up icon
Getting into the Details of Variables Chevron down icon Chevron up icon
Getting into the Details of Methods Chevron down icon Chevron up icon
Lists, Arrays, and Dictionaries Chevron down icon Chevron up icon
Loops Chevron down icon Chevron up icon
Object, a Container with Variables and Methods Chevron down icon Chevron up icon
Let's Make a Game! – from Idea to Development Chevron down icon Chevron up icon
Starting Your First Game Chevron down icon Chevron up icon
Writing GameManager Chevron down icon Chevron up icon
The Game Level Chevron down icon Chevron up icon
The User Interface Chevron down icon Chevron up icon
Collectables Chevron down icon Chevron up icon
Enemies Chevron down icon Chevron up icon
Audio, 3D Games, and Export Chevron down icon Chevron up icon

Customer reviews

Most Recent
Rating distribution
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.6
(7 Ratings)
5 star 28.6%
4 star 42.9%
3 star 0%
2 star 14.3%
1 star 14.3%
Filter icon Filter
Most Recent

Filter reviews by




Hemunt Sharma Jan 12, 2019
Full star icon Full star icon Full star icon Full star icon Full star icon 5
this book is superb. helped me alot the only thing you guys need to know befor reading this book is to know some basic of Unity gaming Engine. Which is right this book is fully focused on coding used in Unity which is c# and over all this book is very good. And the files in the chapter 11 is on there website. go to there website search the name of book on there web site and download those file........ thank you.
Amazon Verified review Amazon
Vivek patel Jun 16, 2018
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Amazing book
Amazon Verified review Amazon
Alyssa Apr 28, 2018
Full star icon Empty star icon Empty star icon Empty star icon Empty star icon 1
missing project files at chapter 11 and can't finish it. Also references colors in the pictures that are black and white ...was ok until the forced MISSING prefabs
Amazon Verified review Amazon
Justin Apr 25, 2018
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Does a great job of easing you into C# coding. Although I wish it tackled game design in unity earlier. Holds your hand well if you're terrified of coding.
Amazon Verified review Amazon
Ryan Apr 24, 2018
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2
As another reviewer has stated, the project assets are not compiled correctly; some are even missing. It's really too bad the author has decided to not remedy this issue as the paperback edition of the book is quite pricey for what it is. You're probably better off skipping this one...
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela